Name | pyDataBridge JSON |
Version |
0.0.1
JSON |
| download |
home_page | None |
Summary | A data synchronization framework for python |
upload_time | 2024-05-14 20:19:44 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.7 |
license | MIT 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"
}