pyDataBridge


NamepyDataBridge JSON
Version 0.0.1 PyPI version JSON
download
home_pageNone
SummaryA data synchronization framework for python
upload_time2024-05-14 20:19:44
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseMIT License Copyright 2024 J. Alexánder Alzate Olaya 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 etl data synchronization
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pyDataBridge

pyDataBridge is an advanced data synchronization framework that leverages both
the adapter pattern and the strategy pattern, complemented by the command
pattern, to facilitate seamless interaction with diverse data sources while
providing robust synchronization capabilities.

## Key Features

* **Adapter Pattern Integration**: pyDataBridge employs the adapter pattern to
  abstract the intricacies of interfacing with different data sources. Each
  adapter encapsulates the logic necessary to communicate with specific types of
  data repositories, including databases, APIs, file systems, and cloud storage
  platforms. This abstraction enables the framework to interact with various
  data sources using a unified interface, promoting flexibility and reusability.
* **Strategy Pattern for Synchronization Strategies**: The framework utilizes
  the strategy pattern to define different synchronization strategies tailored
  to specific use cases and requirements. Users can choose from a range of
  strategies, such as full synchronization, incremental synchronization,
  bidirectional synchronization, or custom synchronization logic. By decoupling
  the synchronization algorithms from the core framework, pyDataBridge
  accommodates diverse synchronization needs and fosters maintainability.
* **Command Pattern for Synchronization Operations**: pyDataBridge implements
  the command pattern to encapsulate synchronization operations as command
  objects. Each synchronization command represents a discrete unit of work, such
  as fetching data from a source, transforming data, applying synchronization
  rules, and updating the target data repository. By encapsulating these
  operations as commands, the framework offers flexibility in executing and
  managing synchronization tasks, facilitating undo-redo functionality,
  transaction management, and asynchronous processing.
* **Data Source Agnosticism**: pyDataBridge is designed to be agnostic to the
  underlying data sources, allowing seamless synchronization across
  heterogeneous environments. Whether dealing with relational databases, NoSQL
  databases, RESTful APIs, or file systems, the framework adapts to different
  data source configurations through its adaptable adapters and flexible
  synchronization strategies.
* **Extensibility and Customization**: The framework prioritizes extensibility,
  enabling developers to extend its functionality by implementing custom
  adapters, synchronization strategies, and synchronization commands. This
  extensibility empowers users to tailor pyDataBridge to their specific
  requirements, integrate with proprietary systems, and incorporate
  domain-specific business logic seamlessly.
* **Error Handling and Logging**: pyDataBridge includes robust error handling
  mechanisms and comprehensive logging capabilities to ensure reliability and
  traceability during synchronization operations. Detailed error messages,
  exception handling, and configurable logging levels provide insights into
  synchronization processes, facilitating troubleshooting and auditing.
* **Scalability and Performance Optimization**: With a scalable architecture and
  optimized synchronization algorithms, pyDataBridge delivers high-performance
  synchronization capabilities, even when dealing with large datasets and high
  concurrency scenarios.

pyDataBridge offers a comprehensive solution for data synchronization,
harnessing the power of the adapter pattern, strategy pattern, and command
pattern to provide a flexible, extensible, and efficient framework for
synchronizing data across heterogeneous systems.

# Installation

`pip install pyDataBridge`

# Documentation [WIP]

If you are interested on how to use this project, feel free to contact me.

~TODO

## Basic steps

1. **Create a model**: Define the data structure with common properties between
   two or more systems. (Extends `DataAccessModel`)
2. **Create the adapters**: For each system you will need the respective adapter
   that loads the information and returns data using the model before. (Extends
   `DataAccessAdapter`)
3. **Create the strategy**: Now you just need to implement the strategy you
   prefer to synchronize the data. (Extends `SyncStrategy`)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyDataBridge",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "ETL, Data Synchronization",
    "author": null,
    "author_email": "\"J. Alex\u00e1nder Alzate Olaya\" <it@jaalzateolaya.com>",
    "download_url": null,
    "platform": null,
    "description": "# pyDataBridge\n\npyDataBridge is an advanced data synchronization framework that leverages both\nthe adapter pattern and the strategy pattern, complemented by the command\npattern, to facilitate seamless interaction with diverse data sources while\nproviding robust synchronization capabilities.\n\n## Key Features\n\n* **Adapter Pattern Integration**: pyDataBridge employs the adapter pattern to\n  abstract the intricacies of interfacing with different data sources. Each\n  adapter encapsulates the logic necessary to communicate with specific types of\n  data repositories, including databases, APIs, file systems, and cloud storage\n  platforms. This abstraction enables the framework to interact with various\n  data sources using a unified interface, promoting flexibility and reusability.\n* **Strategy Pattern for Synchronization Strategies**: The framework utilizes\n  the strategy pattern to define different synchronization strategies tailored\n  to specific use cases and requirements. Users can choose from a range of\n  strategies, such as full synchronization, incremental synchronization,\n  bidirectional synchronization, or custom synchronization logic. By decoupling\n  the synchronization algorithms from the core framework, pyDataBridge\n  accommodates diverse synchronization needs and fosters maintainability.\n* **Command Pattern for Synchronization Operations**: pyDataBridge implements\n  the command pattern to encapsulate synchronization operations as command\n  objects. Each synchronization command represents a discrete unit of work, such\n  as fetching data from a source, transforming data, applying synchronization\n  rules, and updating the target data repository. By encapsulating these\n  operations as commands, the framework offers flexibility in executing and\n  managing synchronization tasks, facilitating undo-redo functionality,\n  transaction management, and asynchronous processing.\n* **Data Source Agnosticism**: pyDataBridge is designed to be agnostic to the\n  underlying data sources, allowing seamless synchronization across\n  heterogeneous environments. Whether dealing with relational databases, NoSQL\n  databases, RESTful APIs, or file systems, the framework adapts to different\n  data source configurations through its adaptable adapters and flexible\n  synchronization strategies.\n* **Extensibility and Customization**: The framework prioritizes extensibility,\n  enabling developers to extend its functionality by implementing custom\n  adapters, synchronization strategies, and synchronization commands. This\n  extensibility empowers users to tailor pyDataBridge to their specific\n  requirements, integrate with proprietary systems, and incorporate\n  domain-specific business logic seamlessly.\n* **Error Handling and Logging**: pyDataBridge includes robust error handling\n  mechanisms and comprehensive logging capabilities to ensure reliability and\n  traceability during synchronization operations. Detailed error messages,\n  exception handling, and configurable logging levels provide insights into\n  synchronization processes, facilitating troubleshooting and auditing.\n* **Scalability and Performance Optimization**: With a scalable architecture and\n  optimized synchronization algorithms, pyDataBridge delivers high-performance\n  synchronization capabilities, even when dealing with large datasets and high\n  concurrency scenarios.\n\npyDataBridge offers a comprehensive solution for data synchronization,\nharnessing the power of the adapter pattern, strategy pattern, and command\npattern to provide a flexible, extensible, and efficient framework for\nsynchronizing data across heterogeneous systems.\n\n# Installation\n\n`pip install pyDataBridge`\n\n# Documentation [WIP]\n\nIf you are interested on how to use this project, feel free to contact me.\n\n~TODO\n\n## Basic steps\n\n1. **Create a model**: Define the data structure with common properties between\n   two or more systems. (Extends `DataAccessModel`)\n2. **Create the adapters**: For each system you will need the respective adapter\n   that loads the information and returns data using the model before. (Extends\n   `DataAccessAdapter`)\n3. **Create the strategy**: Now you just need to implement the strategy you\n   prefer to synchronize the data. (Extends `SyncStrategy`)\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright 2024 J. Alex\u00e1nder Alzate Olaya  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \u201cSoftware\u201d), 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 \u201cAS IS\u201d, 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": "A data synchronization framework for python",
    "version": "0.0.1",
    "project_urls": {
        "Bug Tracker": "https://gitlab.com/jaalzateolaya/pydatabridge/-/issues",
        "Homepage": "https://gitlab.com/jaalzateolaya/pydatabridge"
    },
    "split_keywords": [
        "etl",
        " data synchronization"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f94741a04abb2c524e9220cd9b198cc6dc97f60ea51829c6c6ae3b77e97588f7",
                "md5": "ccf92c6ada64668050be092f6805637f",
                "sha256": "8922a487a067146cfbc4d960421e999ab3ef23136ba0c57726ef2ce147b48957"
            },
            "downloads": -1,
            "filename": "pyDataBridge-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ccf92c6ada64668050be092f6805637f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 20430,
            "upload_time": "2024-05-14T20:19:44",
            "upload_time_iso_8601": "2024-05-14T20:19:44.781020Z",
            "url": "https://files.pythonhosted.org/packages/f9/47/41a04abb2c524e9220cd9b198cc6dc97f60ea51829c6c6ae3b77e97588f7/pyDataBridge-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-14 20:19:44",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "jaalzateolaya",
    "gitlab_project": "pydatabridge",
    "lcname": "pydatabridge"
}
        
Elapsed time: 0.33740s