atomicshop


Nameatomicshop JSON
Version 2.18.28 PyPI version JSON
download
home_pageNone
SummaryAtomic functions and classes to make developer life easier
upload_time2025-01-13 13:53:39
maintainerNone
docs_urlNone
authorDenis Kras
requires_python>=3.10
licenseMIT License Copyright (c) 2023 Bugsec, Denis Kras Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1 align="center">Atomic Workshop</h1>



<!-- ABOUT THE PROJECT -->
## About The Project

Atomic Workshop is python's library that was built by Denis Kras under Bugsec's roof.

The main purpose of the library is to simplify the process of developing under python.
The library is constantly being improved and supplemented with new features.
"Atomic" is a key to basic functions that a developer needs in his daily tasks: create directory, iterate over files, read/write files, manipulate lists, dicts, etc.

There are many gems hidden in the library:
* atomicshop.print_api: this is the main feature of this library. It allows you to print colored text, with different styles, with / without stdout / stderr, RTL text, logger usage. The API will be integrated in every function of the library in the future, so you can easily use it controlling outputs.
* atomicshop.etw.etw: Windows ETW - Event Tracing, a wrapper for FireEye project's ETW library with much easier API. Since, FireEye didn't update their library for quite a while, maybe another solution will be considered in the future. If you have suggestions, please let me know.
* atomicshop.etw.dns_trace: Windows DNS Event Tracing, Traces DNS requests / responses (Event ID: 3008) on Windows OSes that support Event Tracing. Outputs the real domain (not CDN: AWS, GoogleCloud, Azure, etc) with PID. Process Name and Command Line can be retrieved by option.
* atomicshop.sockets: Socket wrapper, can be used to create a server or client and manipulate sockets with relatively easy API. Server tester available.
* atomicshop.mitm: MITM Proxy, allows you to create a TCP proxy server (works with SSL) that will intercept requests and responses. You can modify them, log them, etc. ReadMe to follow. Based on SocketWrapper.
* atomicshop.http_parser: parse HTTP requests and responses to dictionary.
* atomicshop.diff_check.diff_check.DiffChecker: helps on checking if pyhon object, a file or any other thing was updated between checks.
* atomicshop.gitHub_wrapper: easily download branches and latest releases from GitHub repositories.
* atomicshop.archiver: extract archives using options.
* atomicshop.wrappers.configparserw.ConfigParserWrapper: read / write config files to dict, converting string values to other formats (int, bool, list, list_of_ints, etc).
* atomicshop.wrappers.loggingw: wrapper for 'logging' module, allows easier creation and manipulation of the 'logging.Logger' object with enhanced functionality on TimedRotatingFileHandler and formatters. 
* atomicshop.wrappers.ffmpegw.FFmpegWrapper: wrapper for FFmpeg, allows you to convert files to other formats. Downloads latest compiled release of ffmpeg from GitHub, if it doesn't find one.
* atomicshop.wrappers.playwrightw: wrapper for Microsoft Playwright, allows you to automate browsers. Has many advanced functions and features, like wait for full page load (wrappers.playwrightw.waits.maximum_idle), that Playwright doesn't have by default.
* atomicshop.sound: this module currently can record sound from Stereo mix to WAV file.
* atomicshop.process: Process wrapper, can be used to get live output from a console process, while it still runs. Execute process in new cmd window, etc.
* atomicshop.scheduling: Scheduler with threads, you can schedule a function to run periodically each 30 minutes (or any specified period of time) using threads (or not).
* atomicshop.timer: measures time passed from the point you start it using python API.
* atomicshop.web.download: File downloader with status.
* atomicshop.file_io: File csv / json / text reader / writer.
* atomicshop.filesystem: functions like, move / create folders, copy / delete files, etc.
* And many more...

Currently, for complete picture you'll have to check the files in the library. I tried my best with understandable naming and grouping convention.
Probably in the future docs generated by SPHINX will follow. Currently most of the functions have docstrings with usage and examples.

Most of the functions presented here are atomic, meaning you can use them almost in any project.
Also, most of the functions were written firstly to be readable and understandable, and secondly functional. In addition, optimization was a priority.
The above meaning that the functions provided are fast and easy to use.
Some functions are presented as example of how to do something, to lessen querying to Google, StackOverflow and alike.

Off course, some functions are complete mess in terms of code, speed and probably even logic, but their usefulness outline the cons.
And later on, they will be rewritten to be more efficient.

Since, it's a "one man" project, improvements and fixes of existing functions will take time, but you can send me suggestions and pull requests. I will try to respond as soon as time allows.
The project is considered pre-pre alpha on heavy features like socket wrapper, but basic functions are stable and can be used in production.
Since, it's pre-alpha API names and functionality can change.
Follow project's change history for the latest. 

I tried my best to use as less external libraries as possible, but some of them are required.
Most of them already were added to 'dependencies' section of the setup. 

Currently, the library is being developed on Windows 10 and python 3.11. No other platforms or python versions were tested.
This means that the official support of the library is mainly for python 3.11 under Windows 10.
Most of the features will work, but some require at least version 3.10, like SocketWrapper. Since, some features in it are 3.10 specific.

The library and its features will evolve based on my curiosity and needs. But as of now, the updates to features list are relatively frequent.


<!-- GETTING STARTED -->
## Getting Started

To get a local copy up and running follow these simple steps.

### Installation

1. The easiest way to install the library is to use pip:
   ```sh
   pip install atomicshop
   ```
   
2. If you want to use the latest version, you can download or clone the repo:
   ```sh
   git clone https://github.com/BugSec-Official/atomicshop.git
   ```
    Extract it and install it using pip:
    ```sh
   pip install .
   ```
   If you're on windows you can use the 'Setup.cmd' provided in the repo.

3. To install the latest version of 'pywintrace' you can use pip:
   ```sh
   pip install https://github.com/fireeye/pywintrace/releases/download/v0.3.0/pywintrace-0.3.0-py3-none-any.whl
   ```

   The latest version on PyPI is 0.2, so you will need to install from GitHub.
   Alternatively, you can use a cmd file in the addon folder after 'atomicshop' installation:
   ```sh
   "\Lib\site-packages\atomicshop\addons\a_setup_scripts\install_pywintrace_0.3.cmd"
   ```

4. If you get an exception while installing the 'psycopg2' package on ubuntu, install this binary:
    ```sh
    sudo apt-get install libpq-dev
    ```
    Then install the package:
    ```sh
    pip install psycopg2-binary
    pip install psycopg2
    ```
   Alternatively, you can use a cmd file in the addon folder after 'atomicshop' installation:
    ```sh
    "\Lib\site-packages\atomicshop\addons\a_setup_scripts\install_psycopg2_ubuntu.sh"
    ```
   Note: 'psycopg2' package is not in prerequisites because of this issue.
   


<!-- USAGE EXAMPLES -->
## Usage

To follow. For now, check the files in the library. I tried my best with understandable naming and grouping convention.
There are some ready to use scripts in the 'addons/mains' folder. You can use them as a reference.



<!-- LICENSE -->
## License

Distributed under the MIT License. See `LICENSE.txt` for more information.



<!-- HISTORY -->
## History

[History.md](https://github.com/BugSec-Official/atomicshop/blob/main/History.md#history)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "atomicshop",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": null,
    "author": "Denis Kras",
    "author_email": null,
    "download_url": null,
    "platform": null,
    "description": "<h1 align=\"center\">Atomic Workshop</h1>\r\n\r\n\r\n\r\n<!-- ABOUT THE PROJECT -->\r\n## About The Project\r\n\r\nAtomic Workshop is python's library that was built by Denis Kras under Bugsec's roof.\r\n\r\nThe main purpose of the library is to simplify the process of developing under python.\r\nThe library is constantly being improved and supplemented with new features.\r\n\"Atomic\" is a key to basic functions that a developer needs in his daily tasks: create directory, iterate over files, read/write files, manipulate lists, dicts, etc.\r\n\r\nThere are many gems hidden in the library:\r\n* atomicshop.print_api: this is the main feature of this library. It allows you to print colored text, with different styles, with / without stdout / stderr, RTL text, logger usage. The API will be integrated in every function of the library in the future, so you can easily use it controlling outputs.\r\n* atomicshop.etw.etw: Windows ETW - Event Tracing, a wrapper for FireEye project's ETW library with much easier API. Since, FireEye didn't update their library for quite a while, maybe another solution will be considered in the future. If you have suggestions, please let me know.\r\n* atomicshop.etw.dns_trace: Windows DNS Event Tracing, Traces DNS requests / responses (Event ID: 3008) on Windows OSes that support Event Tracing. Outputs the real domain (not CDN: AWS, GoogleCloud, Azure, etc) with PID. Process Name and Command Line can be retrieved by option.\r\n* atomicshop.sockets: Socket wrapper, can be used to create a server or client and manipulate sockets with relatively easy API. Server tester available.\r\n* atomicshop.mitm: MITM Proxy, allows you to create a TCP proxy server (works with SSL) that will intercept requests and responses. You can modify them, log them, etc. ReadMe to follow. Based on SocketWrapper.\r\n* atomicshop.http_parser: parse HTTP requests and responses to dictionary.\r\n* atomicshop.diff_check.diff_check.DiffChecker: helps on checking if pyhon object, a file or any other thing was updated between checks.\r\n* atomicshop.gitHub_wrapper: easily download branches and latest releases from GitHub repositories.\r\n* atomicshop.archiver: extract archives using options.\r\n* atomicshop.wrappers.configparserw.ConfigParserWrapper: read / write config files to dict, converting string values to other formats (int, bool, list, list_of_ints, etc).\r\n* atomicshop.wrappers.loggingw: wrapper for 'logging' module, allows easier creation and manipulation of the 'logging.Logger' object with enhanced functionality on TimedRotatingFileHandler and formatters. \r\n* atomicshop.wrappers.ffmpegw.FFmpegWrapper: wrapper for FFmpeg, allows you to convert files to other formats. Downloads latest compiled release of ffmpeg from GitHub, if it doesn't find one.\r\n* atomicshop.wrappers.playwrightw: wrapper for Microsoft Playwright, allows you to automate browsers. Has many advanced functions and features, like wait for full page load (wrappers.playwrightw.waits.maximum_idle), that Playwright doesn't have by default.\r\n* atomicshop.sound: this module currently can record sound from Stereo mix to WAV file.\r\n* atomicshop.process: Process wrapper, can be used to get live output from a console process, while it still runs. Execute process in new cmd window, etc.\r\n* atomicshop.scheduling: Scheduler with threads, you can schedule a function to run periodically each 30 minutes (or any specified period of time) using threads (or not).\r\n* atomicshop.timer: measures time passed from the point you start it using python API.\r\n* atomicshop.web.download: File downloader with status.\r\n* atomicshop.file_io: File csv / json / text reader / writer.\r\n* atomicshop.filesystem: functions like, move / create folders, copy / delete files, etc.\r\n* And many more...\r\n\r\nCurrently, for complete picture you'll have to check the files in the library. I tried my best with understandable naming and grouping convention.\r\nProbably in the future docs generated by SPHINX will follow. Currently most of the functions have docstrings with usage and examples.\r\n\r\nMost of the functions presented here are atomic, meaning you can use them almost in any project.\r\nAlso, most of the functions were written firstly to be readable and understandable, and secondly functional. In addition, optimization was a priority.\r\nThe above meaning that the functions provided are fast and easy to use.\r\nSome functions are presented as example of how to do something, to lessen querying to Google, StackOverflow and alike.\r\n\r\nOff course, some functions are complete mess in terms of code, speed and probably even logic, but their usefulness outline the cons.\r\nAnd later on, they will be rewritten to be more efficient.\r\n\r\nSince, it's a \"one man\" project, improvements and fixes of existing functions will take time, but you can send me suggestions and pull requests. I will try to respond as soon as time allows.\r\nThe project is considered pre-pre alpha on heavy features like socket wrapper, but basic functions are stable and can be used in production.\r\nSince, it's pre-alpha API names and functionality can change.\r\nFollow project's change history for the latest. \r\n\r\nI tried my best to use as less external libraries as possible, but some of them are required.\r\nMost of them already were added to 'dependencies' section of the setup. \r\n\r\nCurrently, the library is being developed on Windows 10 and python 3.11. No other platforms or python versions were tested.\r\nThis means that the official support of the library is mainly for python 3.11 under Windows 10.\r\nMost of the features will work, but some require at least version 3.10, like SocketWrapper. Since, some features in it are 3.10 specific.\r\n\r\nThe library and its features will evolve based on my curiosity and needs. But as of now, the updates to features list are relatively frequent.\r\n\r\n\r\n<!-- GETTING STARTED -->\r\n## Getting Started\r\n\r\nTo get a local copy up and running follow these simple steps.\r\n\r\n### Installation\r\n\r\n1. The easiest way to install the library is to use pip:\r\n   ```sh\r\n   pip install atomicshop\r\n   ```\r\n   \r\n2. If you want to use the latest version, you can download or clone the repo:\r\n   ```sh\r\n   git clone https://github.com/BugSec-Official/atomicshop.git\r\n   ```\r\n    Extract it and install it using pip:\r\n    ```sh\r\n   pip install .\r\n   ```\r\n   If you're on windows you can use the 'Setup.cmd' provided in the repo.\r\n\r\n3. To install the latest version of 'pywintrace' you can use pip:\r\n   ```sh\r\n   pip install https://github.com/fireeye/pywintrace/releases/download/v0.3.0/pywintrace-0.3.0-py3-none-any.whl\r\n   ```\r\n\r\n   The latest version on PyPI is 0.2, so you will need to install from GitHub.\r\n   Alternatively, you can use a cmd file in the addon folder after 'atomicshop' installation:\r\n   ```sh\r\n   \"\\Lib\\site-packages\\atomicshop\\addons\\a_setup_scripts\\install_pywintrace_0.3.cmd\"\r\n   ```\r\n\r\n4. If you get an exception while installing the 'psycopg2' package on ubuntu, install this binary:\r\n    ```sh\r\n    sudo apt-get install libpq-dev\r\n    ```\r\n    Then install the package:\r\n    ```sh\r\n    pip install psycopg2-binary\r\n    pip install psycopg2\r\n    ```\r\n   Alternatively, you can use a cmd file in the addon folder after 'atomicshop' installation:\r\n    ```sh\r\n    \"\\Lib\\site-packages\\atomicshop\\addons\\a_setup_scripts\\install_psycopg2_ubuntu.sh\"\r\n    ```\r\n   Note: 'psycopg2' package is not in prerequisites because of this issue.\r\n   \r\n\r\n\r\n<!-- USAGE EXAMPLES -->\r\n## Usage\r\n\r\nTo follow. For now, check the files in the library. I tried my best with understandable naming and grouping convention.\r\nThere are some ready to use scripts in the 'addons/mains' folder. You can use them as a reference.\r\n\r\n\r\n\r\n<!-- LICENSE -->\r\n## License\r\n\r\nDistributed under the MIT License. See `LICENSE.txt` for more information.\r\n\r\n\r\n\r\n<!-- HISTORY -->\r\n## History\r\n\r\n[History.md](https://github.com/BugSec-Official/atomicshop/blob/main/History.md#history)\r\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2023 Bugsec, Denis Kras  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
    "summary": "Atomic functions and classes to make developer life easier",
    "version": "2.18.28",
    "project_urls": {
        "Homepage": "https://github.com/BugSec-Official/atomicshop"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1e3bd96dba385a201fc935dbfff10eb137dc813a66f0dd8d1aa0edf469dbb2e9",
                "md5": "82caf8ee32f6c771c8a60b90252d797b",
                "sha256": "b4f71ffcfe813bd5f2ff3ecdf74880e864a253ebd5bebb6b251503fd8fda5364"
            },
            "downloads": -1,
            "filename": "atomicshop-2.18.28-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "82caf8ee32f6c771c8a60b90252d797b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 631448,
            "upload_time": "2025-01-13T13:53:39",
            "upload_time_iso_8601": "2025-01-13T13:53:39.910038Z",
            "url": "https://files.pythonhosted.org/packages/1e/3b/d96dba385a201fc935dbfff10eb137dc813a66f0dd8d1aa0edf469dbb2e9/atomicshop-2.18.28-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-13 13:53:39",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "BugSec-Official",
    "github_project": "atomicshop",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "atomicshop"
}
        
Elapsed time: 0.47159s