Functional collections extension functions for Python

Overview

pyfuncol

CI codecov PyPI Documentation Status GitHub license

A Python functional collections library. It extends collections built-in types with useful methods to write functional Python code. It uses Forbidden Fruit under the hood.

Installation

pip install pyfuncol

Usage

To use the methods, you just need to import pyfuncol. Some examples:

import pyfuncol

[1, 2, 3, 4].map(lambda x: x * 2).filter(lambda x: x > 4)
# [6, 8]

{1, 2, 3, 4}.map(lambda x: x * 2).filter(lambda x: x > 4)
# {6, 8}

["abc", "def", "e"].group_by(lambda s: len(s))
# {3: ["abc", "def"], 1: ["e"]}

{"a": 1, "b": 2, "c": 3}.flat_map(lambda kv: {kv[0]: kv[1] ** 2})
# {"a": 1, "b": 4, "c": 9}

API

For lists, please refer to the docs.

For dictionaries, please refer to the docs.

For sets, please refer to the docs.

For more details, please have a look at the API reference.

Documentation

See https://pyfuncol.readthedocs.io/.

Compatibility

Since it depends on Forbidden Fruit, it only works on CPython.

Contributing

See the contributing guide for detailed instructions on how to get started with the project.

License

pyfuncol is licensed under the MIT license.

Comments
  • Forbiddenfruit optional

    Forbiddenfruit optional

    Description

    Implements making forbiddenfruit optional at issue #27

    Fixes #27

    Also need to:

    • [X] ~Change setup.py to make forbiddenfruit optional~

    Type of change

    • [X] New feature (non-breaking change which adds functionality)

    Checklist

    • [X] My code follows the style guidelines of this project
    • [x] I have made corresponding changes to the documentation
    • [X] I have added tests that prove my fix is effective or that my feature works
    opened by m-doescode 6
  • [FEATURE] Make forbiddenfruit optional

    [FEATURE] Make forbiddenfruit optional

    It would be great if forbiddenfruit was made optional. Since forbiddenfruit requires CPython and I think if it would be better if it could work on other versions of python.

    Instead of:

    import pyfuncol
    
    my_list = [1, 2, 3]
    print(my_list.map(lambda x: x * 2))
    

    I can do:

    from pyfuncol.list import *
    
    my_list = [1, 2, 3]
    print(map(my_list, lambda x: x * 2))
    

    Maybe there can be a check to see if forbiddenfruit is installed. If it is, add all the functions to the builtin classes, otherwise do nothing.

    Sorry if I misunderstand how this works.

    enhancement 
    opened by m-doescode 6
  • Add pure operations (`pure_map`, `pure_flat_map`) that use memoization to improve performance

    Add pure operations (`pure_map`, `pure_flat_map`) that use memoization to improve performance

    Description

    Propose versions of map and flat_map that use memoization to improve performance. This works only for pure functions so we add a new function instead of modifying map.

    Fixes # (issue)

    Type of change

    Please delete options that are not relevant.

    • [x] New feature (non-breaking change which adds functionality)
    • [x] This change requires a documentation update

    Checklist

    • [x] My code follows the style guidelines of this project
    • [x] I have made corresponding changes to the documentation
    • [x] I have added tests that prove my fix is effective or that my feature works
    opened by samuelchassot 6
  • Fix subclasses bug and add support for frozensets

    Fix subclasses bug and add support for frozensets

    Description

    In this PR:

    • Support for simple set, dict and list subclasses
    • Support for frozenset
    • Add filter_not for lists and sets

    Fixes #17

    Type of change

    Please delete options that are not relevant.

    • [x] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [x] This change requires a documentation update

    Checklist

    • [x] My code follows the style guidelines of this project
    • [x] I have made corresponding changes to the documentation
    • [x] I have added tests that prove my fix is effective or that my feature works
    opened by Gondolav 6
  • Bump dask from 2022.6.0 to 2022.9.1

    Bump dask from 2022.6.0 to 2022.9.1

    Bumps dask from 2022.6.0 to 2022.9.1.

    Commits
    • b944abf bump version to 2022.9.1
    • ee87819 Workaround for parquet writing failure using some datetime series but not oth...
    • 1a8533f Filter out numeric_only warnings from pandas (#9496)
    • 803c7fd Avoid set_index(..., inplace=True) where not necessary (#9472)
    • f45df2b Fix overlap so that set_index doesn't drop rows (#9423)
    • 982376e Allow split_out to be None, which then defaults to 1 in `groupby().aggr...
    • 6c15102 Avoid passing groupby key list of length one (#9495)
    • 6ebe384 aca: Provide default for split_out (#9493)
    • 024df34 Fix assigning pandas Series to column when ddf.columns.min() raises (#9485)
    • 142de26 Add DataFrame and Series median method (#9483)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 4
  • Bump actions/setup-python from 4.2.0 to 4.3.1

    Bump actions/setup-python from 4.2.0 to 4.3.1

    Bumps actions/setup-python from 4.2.0 to 4.3.1.

    Release notes

    Sourced from actions/setup-python's releases.

    Improve error handling and messages

    In scope of this release we added improved error message to put operating system and its version in the logs (actions/setup-python#559). Besides, the release

    v4.3.0

    • Update @​actions/core to 1.10.0 version #517
    • Update @​actions/cache to 3.0.4 version #499
    • Only use github.token on github.com #443
    • Improvement of documentation #477 #479 #491 #492
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 2
  • Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.1

    Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.1

    Bumps pypa/gh-action-pypi-publish from 1.5.1 to 1.6.1.

    Release notes

    Sourced from pypa/gh-action-pypi-publish's releases.

    v1.6.1

    What's happened?!

    There was a sneaky bug in v1.6.0 which caused Twine to be outside the import path in the Python runtime. It is fixed in v1.6.1 by updating $PYTHONPATH to point to a correct location of the user-global site-packages/ directory.

    Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.0...v1.6.1

    v1.6.0

    Anything's changed?

    The only update is that the Python runtime has been upgraded from 3.9 to 3.11. There are no functional changes in this release.

    Full Changelog: https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.2...v1.6.0

    v1.5.2

    What's Improved

    Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.1...v1.5.2

    Commits
    • 5d1679f Use py3.11 user-global site-packages in PYTHONPATH
    • d2a2496 Switch the runtime from Python 3.9 to Python 3.11
    • d7edd4c Add user-global site-packages to $PYTHONPATH
    • 8d5f27c Install Twine in the user-global site-packages
    • b0dc178 Disable pip cache dir with an env var
    • bbf6e0b Copy requirements to corresponding dir @ container
    • 0b69a8c Document broken pkginfo==1.9.0 transitive dep
    • c54db9c Integrate pip-tools-generated constraint files
    • 480ec4e Inherit yamllint config from the default preset
    • 5fb2f04 Drop __token__ from README code usage snippets
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 2
  • Bump dask from 2022.9.2 to 2022.12.0

    Bump dask from 2022.9.2 to 2022.12.0

    Bumps dask from 2022.9.2 to 2022.12.0.

    Commits
    • 4785355 bump version to 2022.12.0
    • 23cbe9a Avoid PytestReturnNotNoneWarning in test_inheriting_class (#9707)
    • 945435b Remove statistics-based set_index logic from read_parquet (#9661)
    • b1e468e Add support for use_nullable_dtypes to dd.read_parquet (#9617)
    • f309f9f Fix flaky test_dataframe_aggregations_multilevel (#9701)
    • a7efdf9 Fix map_overlap in order to accept pandas arguments (#9571)
    • 99123bd Fix pandas 1.5+ FutureWarning in .str.split(..., expand=True) (#9704)
    • 49b516b Enable column projection for groupby slicing (#9667)
    • 8ef438b Support duplicate column cum-functions (#9685)
    • 3ac3b8d Bump mypy version (#9697)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 2
  • Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2

    Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2

    Bumps pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2.

    Release notes

    Sourced from pypa/gh-action-pypi-publish's releases.

    v1.5.2

    What's Improved

    Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.1...v1.5.2

    Commits
    • d7edd4c Add user-global site-packages to $PYTHONPATH
    • 8d5f27c Install Twine in the user-global site-packages
    • b0dc178 Disable pip cache dir with an env var
    • bbf6e0b Copy requirements to corresponding dir @ container
    • 0b69a8c Document broken pkginfo==1.9.0 transitive dep
    • c54db9c Integrate pip-tools-generated constraint files
    • 480ec4e Inherit yamllint config from the default preset
    • 5fb2f04 Drop __token__ from README code usage snippets
    • 7bbdccd Update the mention of master with unstable/v1
    • 328cf89 📝 Fix a link to the "Distribution Package" term
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 2
  • Bump dask from 2022.9.2 to 2022.11.1

    Bump dask from 2022.9.2 to 2022.11.1

    Bumps dask from 2022.9.2 to 2022.11.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 2
  • Bump dask from 2022.9.2 to 2022.11.0

    Bump dask from 2022.9.2 to 2022.11.0

    Bumps dask from 2022.9.2 to 2022.11.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 2
  • Bump sphinx from 5.2.3 to 6.1.1

    Bump sphinx from 5.2.3 to 6.1.1

    Bumps sphinx from 5.2.3 to 6.1.1.

    Release notes

    Sourced from sphinx's releases.

    v6.1.1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.1.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v5.3.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    Changelog

    Sourced from sphinx's changelog.

    Release 6.1.1 (released Jan 05, 2023)

    Bugs fixed

    • #11091: Fix util.nodes.apply_source_workaround for literal_block nodes with no source information in the node or the node's parents.

    Release 6.1.0 (released Jan 05, 2023)

    Dependencies

    Incompatible changes

    • #10979: gettext: Removed support for pluralisation in get_translation. This was unused and complicated other changes to sphinx.locale.

    Deprecated

    • sphinx.util functions:

      • Renamed sphinx.util.typing.stringify() to sphinx.util.typing.stringify_annotation()
      • Moved sphinx.util.xmlname_checker() to sphinx.builders.epub3._XML_NAME_PATTERN

      Moved to sphinx.util.display:

      • sphinx.util.status_iterator
      • sphinx.util.display_chunk
      • sphinx.util.SkipProgressMessage
      • sphinx.util.progress_message

      Moved to sphinx.util.http_date:

      • sphinx.util.epoch_to_rfc1123
      • sphinx.util.rfc1123_to_epoch

      Moved to sphinx.util.exceptions:

      • sphinx.util.save_traceback

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Bump actions/setup-python from 4.2.0 to 4.4.0

    Bump actions/setup-python from 4.2.0 to 4.4.0

    Bumps actions/setup-python from 4.2.0 to 4.4.0.

    Release notes

    Sourced from actions/setup-python's releases.

    Add support to install multiple python versions

    In scope of this release we added support to install multiple python versions. For this you can try to use this snippet:

        - uses: actions/[email protected]
          with:
            python-version: |
                3.8
                3.9
                3.10
    

    Besides, we changed logic with throwing the error for GHES if cache is unavailable to warn (actions/setup-python#566).

    Improve error handling and messages

    In scope of this release we added improved error message to put operating system and its version in the logs (actions/setup-python#559). Besides, the release

    v4.3.0

    • Update @​actions/core to 1.10.0 version #517
    • Update @​actions/cache to 3.0.4 version #499
    • Only use github.token on github.com #443
    • Improvement of documentation #477 #479 #491 #492
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 1
  • Bump dask from 2022.9.2 to 2022.12.1

    Bump dask from 2022.9.2 to 2022.12.1

    Bumps dask from 2022.9.2 to 2022.12.1.

    Commits
    • 495a4be bump version to 2022.12.1
    • dcc7777 Add zarr to Python 3.11 CI environment (#9771)
    • 1ac0b11 Support dtype_backend="pandas|pyarrow" configuration (#9719)
    • 936d9f7 Add support for Python 3.11 (#9708)
    • 0d8e12b Support cupy.ndarray to cudf.DataFrame dispatching in dask.dataframe (#...
    • d943293 Make filesystem-backend configurable in read_parquet (#9699)
    • d2c9e39 Serialize all pyarrow extension arrays efficiently (#9740)
    • 7a0e873 Bump actions/checkout from 3.1.0 to 3.2.0 (#9753)
    • 9137dad Fix bug when repartitioning with tz-aware datetime index (#9741)
    • 520472c Fix url link typo in collection backend doc (#9748)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Bump black from 22.3.0 to 22.12.0

    Bump black from 22.3.0 to 22.12.0

    Bumps black from 22.3.0 to 22.12.0.

    Release notes

    Sourced from black's releases.

    22.12.0

    Preview style

    • Enforce empty lines before classes and functions with sticky leading comments (#3302)
    • Reformat empty and whitespace-only files as either an empty file (if no newline is present) or as a single newline character (if a newline is present) (#3348)
    • Implicitly concatenated strings used as function args are now wrapped inside parentheses (#3307)
    • Correctly handle trailing commas that are inside a line's leading non-nested parens (#3370)

    Configuration

    • Fix incorrectly applied .gitignore rules by considering the .gitignore location and the relative path to the target file (#3338)
    • Fix incorrectly ignoring .gitignore presence when more than one source directory is specified (#3336)

    Parser

    • Parsing support has been added for walruses inside generator expression that are passed as function args (for example, any(match := my_re.match(text) for text in texts)) (#3327).

    Integrations

    • Vim plugin: Optionally allow using the system installation of Black via let g:black_use_virtualenv = 0(#3309)

    22.10.0

    Highlights

    • Runtime support for Python 3.6 has been removed. Formatting 3.6 code will still be supported until further notice.

    Stable style

    • Fix a crash when # fmt: on is used on a different block level than # fmt: off (#3281)

    Preview style

    ... (truncated)

    Changelog

    Sourced from black's changelog.

    22.12.0

    Preview style

    • Enforce empty lines before classes and functions with sticky leading comments (#3302)
    • Reformat empty and whitespace-only files as either an empty file (if no newline is present) or as a single newline character (if a newline is present) (#3348)
    • Implicitly concatenated strings used as function args are now wrapped inside parentheses (#3307)
    • Correctly handle trailing commas that are inside a line's leading non-nested parens (#3370)

    Configuration

    • Fix incorrectly applied .gitignore rules by considering the .gitignore location and the relative path to the target file (#3338)
    • Fix incorrectly ignoring .gitignore presence when more than one source directory is specified (#3336)

    Parser

    • Parsing support has been added for walruses inside generator expression that are passed as function args (for example, any(match := my_re.match(text) for text in texts)) (#3327).

    Integrations

    • Vim plugin: Optionally allow using the system installation of Black via let g:black_use_virtualenv = 0(#3309)

    22.10.0

    Highlights

    • Runtime support for Python 3.6 has been removed. Formatting 3.6 code will still be supported until further notice.

    Stable style

    • Fix a crash when # fmt: on is used on a different block level than # fmt: off (#3281)

    ... (truncated)

    Commits
    • 2ddea29 Prepare release 22.12.0 (#3413)
    • 5b1443a release: skip bad macos wheels for now (#3411)
    • 9ace064 Bump peter-evans/find-comment from 2.0.1 to 2.1.0 (#3404)
    • 19c5fe4 Fix CI with latest flake8-bugbear (#3412)
    • d4a8564 Bump sphinx-copybutton from 0.5.0 to 0.5.1 in /docs (#3390)
    • 2793249 Wordsmith current_style.md (#3383)
    • d97b789 Remove whitespaces of whitespace-only files (#3348)
    • c23a5c1 Clarify that Black runs with --safe by default (#3378)
    • 8091b25 Correctly handle trailing commas that are inside a line's leading non-nested ...
    • ffaaf48 Compare each .gitignore found with an appropiate relative path (#3338)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.4

    Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.4

    Bumps pypa/gh-action-pypi-publish from 1.5.1 to 1.6.4.

    Release notes

    Sourced from pypa/gh-action-pypi-publish's releases.

    v1.6.4

    oh, boi! again?

    This is the last one tonight, promise! It fixes this embarrassing bug that was actually caught by the CI but got overlooked due to the lack of sleep. TL;DR GH passed $HOME from the external env into the container and that tricked the Python's site module to think that the home directory is elsewhere, adding non-existent paths to the env vars. See #115.

    Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.3...v1.6.4

    v1.6.3

    Another Release!? Why?

    In pypa/gh-action-pypi-publish#112, it was discovered that passing a $PATH variable even breaks the shebang. So this version adds more safeguards to make sure it keeps working with a fully broken $PATH.

    Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.2...v1.6.3

    v1.6.2

    What's Fixed

    • Made the $PATH and $PYTHONPATH environment variables resilient to broken values passed from the host runner environment, which previously allowed the users to accidentally break the container's internal runtime as reported in pypa/gh-action-pypi-publish#112

    Internal Maintenance Improvements

    New Contributors

    Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.1...v1.6.2

    v1.6.1

    What's happened?!

    There was a sneaky bug in v1.6.0 which caused Twine to be outside the import path in the Python runtime. It is fixed in v1.6.1 by updating $PYTHONPATH to point to a correct location of the user-global site-packages/ directory.

    Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.6.0...v1.6.1

    v1.6.0

    Anything's changed?

    The only update is that the Python runtime has been upgraded from 3.9 to 3.11. There are no functional changes in this release.

    Full Changelog: https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.2...v1.6.0

    v1.5.2

    What's Improved

    Full Diff: https://github.com/pypa/gh-action-pypi-publish/compare/v1.5.1...v1.5.2

    Commits
    • c7f29f7 🐛 Override $HOME in the container with /root
    • 644926c 🧪 Always run smoke testing in debug mode
    • e71a4a4 Add support for verbose bash execusion w/ $DEBUG
    • e56e821 🐛 Make id always available in twine-upload
    • c879b84 🐛 Use full path to bash in shebang
    • 57e7d53 🐛Ensure the default $PATH value is pre-loaded
    • ce291dc 🎨🐛Fix the branch @ pre-commit.ci badge links
    • 102d8ab 🐛 Rehardcode devpi port for GHA srv container
    • 3a9eaef 🐛Use different ports in/out of GHA containers
    • a01fa74 🐛 Use localhost @ GHA outside the containers
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 1
  • Bump sphinx-rtd-theme from 1.0.0 to 1.1.1

    Bump sphinx-rtd-theme from 1.0.0 to 1.1.1

    Bumps sphinx-rtd-theme from 1.0.0 to 1.1.1.

    Changelog

    Sourced from sphinx-rtd-theme's changelog.

    1.1.1

    Fixes

    • Fix wrapping bug on cross references (#1368)

    .. _release-1.1.0:

    1.1.0

    Dependency Changes

    Many documentation projects depend on sphinx-rtd-theme without specifying a version of the theme (unpinned) while also depending on unpinned versions of Sphinx. The latest version of sphinx-rtd-theme ideally always supports the latest version of Sphinx, but this is now guaranteed.

    This release adds upper bounds to direct dependencies Sphinx and docutils which will safeguard from mixing with possibly incompatible future versions of Sphinx & docutils.

    • Sphinx versions supported: 1.6 to 5.2.x
    • Sphinx<6 (#1332)
    • docutils<0.18 (unchanged, but will be bumped in an upcoming release)

    Features

    • Nicer styles for (#967)
    • New styling for breadcrumbs (#1073)

    Fixes

    • Suffixes in Sphinx version caused build errors (#1345)
    • Table cells with multiple paragraphs gets wrong formatting (#289)
    • Definition lists rendered wrongly in api docs (#1052)
    • Citation not styled properly (#1078)
    • Long URLs did not wrap (#1193)

    Minor Changes

    • Sphinx 5.2 added to test matrix (#1348)
    • Python 3.10 added to test matrix (#1334)
    • Supplemental Docker setup for development (#1319)
    • Most of setup.py migrated to setup.cfg (#1116)
    • Jinja2 context variable sphinx_version_info is now (major, minor, -1), the patch component is always -1. Reason: It's complicated. (#1345)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
Releases(v1.3.1)
  • v1.3.1(May 3, 2022)

    What's Changed

    • Bump dask from 2022.1.1 to 2022.2.1 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/36
    • Bump myst-parser from 0.16.1 to 0.17.1 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/49
    • Bump codecov/codecov-action from 2 to 3 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/46
    • Bump actions/setup-python from 2 to 3.1.1 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/47
    • Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/38
    • Bump actions/setup-python from 3.1.1 to 3.1.2 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/50
    • Bump pytest from 7.0.0 to 7.1.1 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/40
    • Bump black from 22.1.0 to 22.3.0 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/42
    • Bump sphinx from 4.4.0 to 4.5.0 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/43
    • Bump dask from 2022.2.1 to 2022.4.1 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/48
    • Bump myst-parser from 0.17.1 to 0.17.2 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/51
    • Bump pytest from 7.1.1 to 7.1.2 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/52
    • Bump dask from 2022.4.1 to 2022.4.2 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/53
    • Bump dask from 2022.4.2 to 2022.5.0 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/54

    Full Changelog: https://github.com/didactic-meme/pyfuncol/compare/v1.3.0...v1.3.1

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Feb 11, 2022)

    What's Changed

    • Bump dask from 2022.1.0 to 2022.1.1 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/29
    • Bump black from 21.12b0 to 22.1.0 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/31
    • Lazy operations by @Gondolav and @samuelchassot in https://github.com/didactic-meme/pyfuncol/pull/30
    • Bump pytest from 6.2.5 to 7.0.0 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/32

    Full Changelog: https://github.com/didactic-meme/pyfuncol/compare/v1.2.1...v1.3.0

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Jan 24, 2022)

    What's Changed

    • Bump pypa/gh-action-pypi-publish from 1.4.2 to 1.5.0 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/24
    • Bump dask from 2021.12.0 to 2022.1.0 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/25
    • Bump sphinx from 4.3.2 to 4.4.0 by @dependabot in https://github.com/didactic-meme/pyfuncol/pull/26
    • Make forbiddenfruit optional by @m-doescode in https://github.com/didactic-meme/pyfuncol/pull/28

    New Contributors

    • @m-doescode made their first contribution in https://github.com/didactic-meme/pyfuncol/pull/28

    Full Changelog: https://github.com/didactic-meme/pyfuncol/compare/v1.2...v1.2.1

    Source code(tar.gz)
    Source code(zip)
  • v1.2(Jan 7, 2022)

    What's Changed

    • Add pure operations (pure_map, pure_flat_map, pure_filter and pure_filter_not) that use memoization to improve performance by @samuelchassot in https://github.com/Gondolav/pyfuncol/pull/23
    • Fix subclasses bug and add support for frozensets by @Gondolav in https://github.com/Gondolav/pyfuncol/pull/19

    Full Changelog: https://github.com/Gondolav/pyfuncol/compare/v1.1...v1.2

    Source code(tar.gz)
    Source code(zip)
  • v1.1(Dec 28, 2021)

    What's Changed

    • Parallel operations on lists, sets and dicts using Dask (par_map, par_flat_map, par_filter and par_filter_not) by @Gondolav in https://github.com/Gondolav/pyfuncol/pull/20

    Full Changelog: https://github.com/Gondolav/pyfuncol/compare/v1.0...v1.1

    Source code(tar.gz)
    Source code(zip)
  • v1.0(Dec 19, 2021)

  • v0.1(Dec 18, 2021)

Owner
Andrea Veneziano
MSc in Computer Science @ EPFL, Switzerland.
Andrea Veneziano
Basic repository showing how to use Hydra + Hydra launchers on SLURM cluster

Slurm-Hydra-Submitit This repository is a minimal working example on how to: setup Hydra setup batch of slurm jobs on top of Hydra via submitit-launch

Raphael Meudec 2 Jul 25, 2022
Simple macOS StatusBar app to remind you to unplug your laptop when sufficiently charged

ChargeMon Simple macOS StatusBar app to monitor battery charge status and remind you to unplug your Mac when the battery is sufficiently charged Overv

Rhet Turnbull 5 Jan 25, 2022
万能通用对象池,可以池化任意自定义类型的对象。

pip install universal_object_pool 此包能够将一切任意类型的python对象池化,是万能池,适用范围远大于单一用途的mysql连接池 http连接池等。 框架使用对象池包,自带实现了4个对象池。可以直接开箱用这四个对象池,也可以作为例子学习对象池用法。

12 Dec 15, 2022
Simple AoC helper program you can use to develop your own solutions in python.

AoC-Compabion Simple AoC helper program you can use to develop your own solutions in python. Simply install it in your python environment using pip fr

Alexander Vollmer 1 Dec 20, 2021
Pre-commit hook for upgrading type hints

This is a pre-commit hook configured to automatically upgrade your type hints to the new native types implemented in PEP 585.

snok 54 Nov 14, 2022
Simple control of Thorlabs Elliptec devices from Python.

Elliptec Simple control of Thorlabs Elliptec devices. No docs yet » Get started · Report a bug · Request a feature About The Project ThorLabs Elliptec

David Roesel 8 Sep 22, 2022
Set named timers for cooking, watering plants, brewing tea and more.

Timer Set named timers for cooking, watering plants, brewing tea and more. About Use Mycroft when your hands are messy or you need more that the one t

OpenVoiceOS 3 Nov 02, 2022
Write Streamlit apps using Notion! (Prototype)

Streamlit + Notion test app Write Streamlit apps using Notion! ☠️ IMPORTANT: This is just a little prototype I made to play with some ideas. Not meant

Thiago Teixeira 22 Sep 08, 2022
Cirq is a Python library for writing, manipulating, and optimizing quantum circuits and running them against quantum computers and simulators

Cirq is a Python library for writing, manipulating, and optimizing quantum circuits and running them against quantum computers and simulators. Install

quantumlib 3.6k Jan 07, 2023
Build your own Etherscan with web3.py

Build your own Etherscan with web3.py Video Tutorial: Run it pip3 install -r requirements.txt export FLASK_APP=app export FLASK_ENV=development flask

35 Jan 02, 2023
Personal Chat Assistance

Python-Programming Personal Chat Assistance {% import "bootstrap/wtf.html" as wtf %} titleEVT/title script src="https://code.jquery.com/jquery-3.

PRASH_SMVIT 2 Nov 14, 2021
TurtleBot Control App - TurtleBot Control App With Python

TURTLEBOT CONTROL APP INDEX: 1. Introduction 2. Environments 2.1. Simulated Envi

Rafanton 4 Aug 03, 2022
A system for assigning and grading notebooks

nbgrader Linux: Windows: Forum: Coverage: Cite: A system for assigning and grading Jupyter notebooks. Documentation can be found on Read the Docs. Hig

Project Jupyter 1.2k Dec 26, 2022
Print 'text color' and 'text format' on Term with Python

term-printer Print 'text color' and 'text format' on Term with Python ※ It may not work depending on the OS and shell used. PIP $ pip install term-pri

ななといつ 10 Nov 12, 2022
This is the DBMS Project done in 5th sem of B.E CS.

Student-Result-Management-System This is the DBMS Project done in 5th sem of B.E CS. You need to install SQlite DB Browser in your pc or laptop to ope

Vivek kulkarni 1 Jan 14, 2022
Sodium is a general purpose programming language which is instruction-oriented (a new programming concept that we are developing and devising) [Still developing...]

Sodium Programming Language Sodium is a general purpose programming language which is instruction-oriented (a new programming concept that we are deve

Instruction Oriented Programming 22 Jan 11, 2022
Let’s Play with Python3

Python3-FirstEdition a bunch of python programs and stuff Super Important Notice THIS IS LICENSED UNDER GNU PUBLIC LICENSE V3 also, refer to Contribut

Jym Patel 2 Nov 24, 2022
A place where the most basic, basic of python coding exists

python-basics A place where the most basic, basic of python coding exists As you can see, there are four folders and the best order to read is: appeti

Chuqin 2 Oct 05, 2022
Blender Add-on to Add Metal Materials to Your Scene

Blender QMM (Quick Metal Materials) Blender Addon to Add Metal Materials to Your Scene Installation Download the latest ZIP from Releases. Usage This

Don Schnitzius 27 Dec 26, 2022
Extract gene length based on featureCount calculation gene nonredundant exon length method.

Extract gene length based on featureCount calculation gene nonredundant exon length method.

laojunjun 12 Nov 21, 2022