{"id":24278265,"url":"https://github.com/indrajeetpatil/crosszip","last_synced_at":"2026-04-04T08:02:43.201Z","repository":{"id":264403515,"uuid":"891154394","full_name":"IndrajeetPatil/crosszip","owner":"IndrajeetPatil","description":"Iterating over all combinations from multiple iterables","archived":false,"fork":false,"pushed_at":"2025-04-17T09:59:08.000Z","size":1309,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-18T00:36:28.311Z","etag":null,"topics":["pypi","pypi-package","python","python-package","utility"],"latest_commit_sha":null,"homepage":"https://indrajeetpatil.github.io/crosszip/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IndrajeetPatil.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-19T20:29:49.000Z","updated_at":"2025-03-01T16:52:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"aa37b10f-82ee-47a9-9ba6-538125194519","html_url":"https://github.com/IndrajeetPatil/crosszip","commit_stats":null,"previous_names":["indrajeetpatil/crosszip"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IndrajeetPatil%2Fcrosszip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IndrajeetPatil%2Fcrosszip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IndrajeetPatil%2Fcrosszip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IndrajeetPatil%2Fcrosszip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IndrajeetPatil","download_url":"https://codeload.github.com/IndrajeetPatil/crosszip/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250528683,"owners_count":21445511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pypi","pypi-package","python","python-package","utility"],"created_at":"2025-01-16T00:02:03.269Z","updated_at":"2026-04-04T08:02:43.189Z","avatar_url":"https://github.com/IndrajeetPatil.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# crosszip \u003cimg src=\"https://raw.githubusercontent.com/IndrajeetPatil/crosszip/main/docs/assets/logo.png\" align=\"right\" width=\"240\" /\u003e\n\n[![PyPI\nversion](https://img.shields.io/pypi/v/crosszip.png)](https://pypi.org/project/crosszip/)\n![Python versions](https://img.shields.io/pypi/pyversions/crosszip.png)\n[![PyPI\nDownloads](https://img.shields.io/pypi/dm/crosszip.png)](https://pypistats.org/packages/crosszip)\n\n`crosszip` is a Python utility that makes it easy to apply a function to\nall possible combinations of elements from multiple iterables. It\ncombines the power of the Cartesian product and functional programming\ninto a single, intuitive tool.\n\nAdditionally, `@pytest.mark.crosszip_parametrize` is a `pytest` marker\nthat simplifies running tests with all possible combinations of\nparameter values.\n\n## Installation\n\n| Package Manager | Installation Command   |\n|-----------------|------------------------|\n| pip             | `pip install crosszip` |\n| uv              | `uv add crosszip`      |\n\n## Usage\n\nExample of using `crosszip`:\n\n``` python\n# @pyodide\n# Label Generation for Machine Learning\n\nfrom crosszip import crosszip\n\n\ndef create_label(category, subcategory, version):\n    return f\"{category}_{subcategory}_v{version}\"\n\n\ncategories = [\"cat\", \"dog\"]\nsubcategories = [\"small\", \"large\"]\nversions = [\"1.0\", \"2.0\"]\n\nlabels = crosszip(create_label, categories, subcategories, versions)\nprint(labels)\n```\n\n    ['cat_small_v1.0', 'cat_small_v2.0', 'cat_large_v1.0', 'cat_large_v2.0', 'dog_small_v1.0', 'dog_small_v2.0', 'dog_large_v1.0', 'dog_large_v2.0']\n\nExample of using `pytest` marker `crosszip_parametrize`:\n\n``` python\n# @pyodide\n# Testing Power Function\n\nimport math\nimport crosszip\nimport pytest\n\n\n@pytest.mark.crosszip_parametrize(\n    \"base\",\n    [2, 10],\n    \"exponent\",\n    [-1, 0, 1],\n)\ndef test_power_function(base, exponent):\n    result = math.pow(base, exponent)\n    assert result == base**exponent\n\n\nprint(\"Tests executed successfully.\")\n```\n\n    Tests executed successfully.\n\nFor more examples, check out the package documentation at:\n\u003chttps://indrajeetpatil.github.io/crosszip/\u003e\n\n## Key Features\n\n- **Flexible Input**: Works with any iterables, including lists, tuples,\n  sets, and generators.\n- **pytest Plugin**: Provides a `crosszip_parametrize` marker for\n  running tests with all possible combinations of parameter values.\n- **Simple API**: Minimalist, intuitive design for quick integration\n  into your projects.\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Code of Conduct\n\nPlease note that the crosszip project is released with a [Contributor Code of Conduct](https://www.contributor-covenant.org/version/3/0/code_of_conduct/). By contributing to this project, you agree to abide by its terms.\n\n## Acknowledgements\n\nHex sticker font is `Rubik`, and the image is taken from icon made by\nFreepik and available at flaticon.com.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findrajeetpatil%2Fcrosszip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Findrajeetpatil%2Fcrosszip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findrajeetpatil%2Fcrosszip/lists"}