Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use ordered data structure to keep track of queue processes #7

Conversation

Wason1797
Copy link
Owner

Fix potential sync bugs with processes being joined out of order

  • A dictionary is unordered, this could cause issues when joining processes since this operation needs to be done in order

  • Using a tuple is the best option here, since it is immutable and the structure is simple enough

Push rolling releases with rc branch, not develop

* A dictionary is unordered, this could cause issues when joining processes since this operation needs to be done in order

* Using a tuple is the best option here, since it is immutable and the structure is simple enough
@Wason1797 Wason1797 merged commit e94a835 into develop Jan 3, 2022
@Wason1797 Wason1797 deleted the bugfix/use-ordered-data-structure-to-leep-track-of-queue-processes branch January 3, 2022 23:31
Wason1797 added a commit that referenced this pull request Jan 3, 2022
* Use ordered data structure to keep track of queue processes (#7)

* Fix potential sync bugs with processes being joined out of order

* A dictionary is unordered, this could cause issues when joining processes since this operation needs to be done in order

* Using a tuple is the best option here, since it is immutable and the structure is simple enough

* push rolling releases with rc branch, not develop

* bump package version to 0.0.2rc
Wason1797 added a commit that referenced this pull request Jan 3, 2022
* Create 0.0.2rc (#8)

* Use ordered data structure to keep track of queue processes (#7)

* Fix potential sync bugs with processes being joined out of order

* A dictionary is unordered, this could cause issues when joining processes since this operation needs to be done in order

* Using a tuple is the best option here, since it is immutable and the structure is simple enough

* push rolling releases with rc branch, not develop

* bump package version to 0.0.2rc

* bump package version to 0.0.2
Wason1797 added a commit that referenced this pull request Oct 23, 2022
* Use ordered data structure to keep track of queue processes (#7)

* Fix potential sync bugs with processes being joined out of order

* A dictionary is unordered, this could cause issues when joining processes since this operation needs to be done in order

* Using a tuple is the best option here, since it is immutable and the structure is simple enough

* push rolling releases with rc branch, not develop

* Create 0.0.2rc (#8)

* Use ordered data structure to keep track of queue processes (#7)

* Fix potential sync bugs with processes being joined out of order

* A dictionary is unordered, this could cause issues when joining processes since this operation needs to be done in order

* Using a tuple is the best option here, since it is immutable and the structure is simple enough

* push rolling releases with rc branch, not develop

* bump package version to 0.0.2rc

* add mypy configuration file

* I decided to start using mypy to typecheck the library

* supress flake8 errors in init

* improve inner library organization

* Move the contents of main.py to automator.py so the naming was clearer

* Also move the example outside the src folder of the library as it is not library code

* Add support to insert data to a queue other than the initial one

* Fix bug in the validate_non_empty_args helper

* add a reset() api to clear the QueueAutomator state

* Create MultiprocessMaybe

* This multiprocessing helper uses the Maybe pattern as inspiration to chain several function calls using multiprocessing

* It wraps a QueueAutomator instance and provides a different style API which could be cleaner than having a bunch of decorators and manually defining queue names.

* This is a work in progress, and it is improving with every iteration

* Add example for MultiprocessingMaybe

* Showcase the MultiprocessingMaybe capabilities in an example

-> insert to intermediate queues
-> replace None or values matching a predicate with the default value
-> Prevent crashes for None values not executing the function when the input matches a predicate

* Add tests for QueueAutomator

* Include the first round of tests for the queue automator, this will ensure that the main functionality does not break if changed

* Update mypy configurations

* This is to exclude build and dist directories from typechecking

* Add docstrings to MultiprocessMaybe

* Update rc version

* Update Readme

* Include Multiprocessing maybe examples

* Update package version to publish
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant