passes-rs-py


Namepasses-rs-py JSON
Version 3.0.1 PyPI version JSON
download
home_pageNone
SummaryRust library for generate Apple Wallet Passes for iOS, WatchOS, MacOS.
upload_time2025-08-09 01:09:04
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseMIT
keywords passkit wallet apple
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Passes

A Rust library for generating PassKit passes, featuring:

- Read & parse `.pkpass` files
- Build & make passes by using library API
- Sign passes with certificate and compress to `.pkpass`
- Change field values is pass by key name
- Supported semantic tags for pass & fields
- All features of [Wallet Passes standard](https://developer.apple.com/documentation/walletpasses) represented in library

Documentation:

- [API reference (doc.rs)](https://docs.rs/passes)
- [Examples](https://github.com/mvodya/passes-rs/tree/main/examples)
- [Apple Wallet Documentation](https://developer.apple.com/documentation/walletpasses)

## Developer Setup

### Quick Start (Recommended)

**macOS/Linux:**
```bash
chmod +x dev-setup.sh
./dev-setup.sh
```

**Windows:**
```cmd
dev-setup.bat
```

This will:
- Install Rust (if needed)
- Install maturin (Python-Rust build tool)
- Create a Python virtual environment
- Build and install the package in development mode

### Manual Setup

1. **Install Rust:**
   ```bash
   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
   ```

2. **Install Python dependencies:**
   ```bash
   pip install maturin
   ```

3. **Build for development:**
   ```bash
   maturin develop
   ```

4. **Test the installation:**
   ```python
   import passes_rs_py
   ```

### Development Commands

- **Build for development:** `maturin develop`
- **Build release wheel:** `maturin build --release`
- **Run Rust tests:** `cargo test`
- **Format code:** `cargo fmt`

## Usage

Add this to your `Cargo.toml`:

```toml
[dependencies]
neopasses = "0.1.0"
```

## Example

### Rust API

For building simple pass:

```rust
// Creating pass
let pass = PassBuilder::new(PassConfig {
    organization_name: "Test organization".into(),
    description: "Super gentlememe pass".into(),
    pass_type_identifier: "com.example.pass".into(),
    team_identifier: "AA00AA0A0A".into(),
    serial_number: "ABCDEFG1234567890".into(),
})
.grouping_identifier(String::from("com.example.pass.app"))
.logo_text("Test pass".into())
.build();
```

Creating package and generate `.pkpass` file:

```rust
let mut package = Package::new(pass);

// Save package as .pkpass
let path = Path::new("test_pass.pkpass");
let file = match File::create(&path) {
    Err(why) => panic!("couldn't create {}: {}", path.display(), why),
    Ok(file) => file,
};
package.write(file).unwrap();
```

### Python Bindings

The library also provides Python bindings with comprehensive asset support:

```python
from passes_rs_py import generate_pass

# Generate pass with multiple asset types
generate_pass(
    config=pass_json_config,
    cert_path="path/to/cert.pem",
    key_path="path/to/key.key",
    output_path="output.pkpass",
    
    # All asset types supported
    icon_path="assets/icon.png",
    icon2x_path="assets/icon@2x.png",
    logo_path="assets/logo.png",
    logo2x_path="assets/logo@2x.png",
    thumbnail_path="assets/thumbnail.png",
    thumbnail2x_path="assets/thumbnail@2x.png",
    strip_path="assets/strip.png",
    strip2x_path="assets/strip@2x.png",
    background_path="assets/background.png",
    background2x_path="assets/background@2x.png",
    footer_path="assets/footer.png",
    footer2x_path="assets/footer@2x.png",
)
```

#### Supported Asset Types

- **Icons**: `icon_path`, `icon2x_path` - Lock screen and app display
- **Logos**: `logo_path`, `logo2x_path` - Top-left corner branding
- **Thumbnails**: `thumbnail_path`, `thumbnail2x_path` - Field area images
- **Strip images**: `strip_path`, `strip2x_path` - Behind primary fields
- **Backgrounds**: `background_path`, `background2x_path` - Full pass background
- **Footers**: `footer_path`, `footer2x_path` - Near barcode area

All asset parameters are optional. See [ASSETS.md](ASSETS.md) for detailed documentation.

For more examples, see [examples](https://github.com/mvodya/passes-rs/tree/main/examples) directory.

## License

Passes is distributed under the terms of the MIT license. See [LICENSE](LICENSE).


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "passes-rs-py",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "passkit, wallet, apple",
    "author": null,
    "author_email": "Jstyles <jstyles@styl.dev>",
    "download_url": null,
    "platform": null,
    "description": "# Passes\n\nA Rust library for generating PassKit passes, featuring:\n\n- Read & parse `.pkpass` files\n- Build & make passes by using library API\n- Sign passes with certificate and compress to `.pkpass`\n- Change field values is pass by key name\n- Supported semantic tags for pass & fields\n- All features of [Wallet Passes standard](https://developer.apple.com/documentation/walletpasses) represented in library\n\nDocumentation:\n\n- [API reference (doc.rs)](https://docs.rs/passes)\n- [Examples](https://github.com/mvodya/passes-rs/tree/main/examples)\n- [Apple Wallet Documentation](https://developer.apple.com/documentation/walletpasses)\n\n## Developer Setup\n\n### Quick Start (Recommended)\n\n**macOS/Linux:**\n```bash\nchmod +x dev-setup.sh\n./dev-setup.sh\n```\n\n**Windows:**\n```cmd\ndev-setup.bat\n```\n\nThis will:\n- Install Rust (if needed)\n- Install maturin (Python-Rust build tool)\n- Create a Python virtual environment\n- Build and install the package in development mode\n\n### Manual Setup\n\n1. **Install Rust:**\n   ```bash\n   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n   ```\n\n2. **Install Python dependencies:**\n   ```bash\n   pip install maturin\n   ```\n\n3. **Build for development:**\n   ```bash\n   maturin develop\n   ```\n\n4. **Test the installation:**\n   ```python\n   import passes_rs_py\n   ```\n\n### Development Commands\n\n- **Build for development:** `maturin develop`\n- **Build release wheel:** `maturin build --release`\n- **Run Rust tests:** `cargo test`\n- **Format code:** `cargo fmt`\n\n## Usage\n\nAdd this to your `Cargo.toml`:\n\n```toml\n[dependencies]\nneopasses = \"0.1.0\"\n```\n\n## Example\n\n### Rust API\n\nFor building simple pass:\n\n```rust\n// Creating pass\nlet pass = PassBuilder::new(PassConfig {\n    organization_name: \"Test organization\".into(),\n    description: \"Super gentlememe pass\".into(),\n    pass_type_identifier: \"com.example.pass\".into(),\n    team_identifier: \"AA00AA0A0A\".into(),\n    serial_number: \"ABCDEFG1234567890\".into(),\n})\n.grouping_identifier(String::from(\"com.example.pass.app\"))\n.logo_text(\"Test pass\".into())\n.build();\n```\n\nCreating package and generate `.pkpass` file:\n\n```rust\nlet mut package = Package::new(pass);\n\n// Save package as .pkpass\nlet path = Path::new(\"test_pass.pkpass\");\nlet file = match File::create(&path) {\n    Err(why) => panic!(\"couldn't create {}: {}\", path.display(), why),\n    Ok(file) => file,\n};\npackage.write(file).unwrap();\n```\n\n### Python Bindings\n\nThe library also provides Python bindings with comprehensive asset support:\n\n```python\nfrom passes_rs_py import generate_pass\n\n# Generate pass with multiple asset types\ngenerate_pass(\n    config=pass_json_config,\n    cert_path=\"path/to/cert.pem\",\n    key_path=\"path/to/key.key\",\n    output_path=\"output.pkpass\",\n    \n    # All asset types supported\n    icon_path=\"assets/icon.png\",\n    icon2x_path=\"assets/icon@2x.png\",\n    logo_path=\"assets/logo.png\",\n    logo2x_path=\"assets/logo@2x.png\",\n    thumbnail_path=\"assets/thumbnail.png\",\n    thumbnail2x_path=\"assets/thumbnail@2x.png\",\n    strip_path=\"assets/strip.png\",\n    strip2x_path=\"assets/strip@2x.png\",\n    background_path=\"assets/background.png\",\n    background2x_path=\"assets/background@2x.png\",\n    footer_path=\"assets/footer.png\",\n    footer2x_path=\"assets/footer@2x.png\",\n)\n```\n\n#### Supported Asset Types\n\n- **Icons**: `icon_path`, `icon2x_path` - Lock screen and app display\n- **Logos**: `logo_path`, `logo2x_path` - Top-left corner branding\n- **Thumbnails**: `thumbnail_path`, `thumbnail2x_path` - Field area images\n- **Strip images**: `strip_path`, `strip2x_path` - Behind primary fields\n- **Backgrounds**: `background_path`, `background2x_path` - Full pass background\n- **Footers**: `footer_path`, `footer2x_path` - Near barcode area\n\nAll asset parameters are optional. See [ASSETS.md](ASSETS.md) for detailed documentation.\n\nFor more examples, see [examples](https://github.com/mvodya/passes-rs/tree/main/examples) directory.\n\n## License\n\nPasses is distributed under the terms of the MIT license. See [LICENSE](LICENSE).\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Rust library for generate Apple Wallet Passes for iOS, WatchOS, MacOS.",
    "version": "3.0.1",
    "project_urls": {
        "Homepage": "https://github.com/jontyms/neo-passes-rs",
        "Repository": "https://github.com/jontyms/neo-passes-rs"
    },
    "split_keywords": [
        "passkit",
        " wallet",
        " apple"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "92c8262aa99cb2e0ed4193814916fccdc37493c6759c2f14c6e03e74327dd77d",
                "md5": "42fecd5ca46932cdc4f416df87235b31",
                "sha256": "4c48a770090c1aace256fa6ed9560829a227d9c309481eb8d7c49161d4c45704"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "has_sig": false,
            "md5_digest": "42fecd5ca46932cdc4f416df87235b31",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 3574190,
            "upload_time": "2025-08-09T01:09:04",
            "upload_time_iso_8601": "2025-08-09T01:09:04.329095Z",
            "url": "https://files.pythonhosted.org/packages/92/c8/262aa99cb2e0ed4193814916fccdc37493c6759c2f14c6e03e74327dd77d/passes_rs_py-3.0.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0bfa4c1190d850fb989f961576b25cadec52252de2a08fc6f25b0c54ac266dda",
                "md5": "8654e96957f5c993e9bf5afea353efe0",
                "sha256": "a9af0e43b37fc0c881bf988210ad31f343b7119751a81fc9fc575b546129725c"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "8654e96957f5c993e9bf5afea353efe0",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 2309462,
            "upload_time": "2025-08-09T01:09:07",
            "upload_time_iso_8601": "2025-08-09T01:09:07.965426Z",
            "url": "https://files.pythonhosted.org/packages/0b/fa/4c1190d850fb989f961576b25cadec52252de2a08fc6f25b0c54ac266dda/passes_rs_py-3.0.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "179d6e4f9e60d5e140f301f777a09ebddb84091f4565f9141578ecfc5c1ceb46",
                "md5": "178487030000af81f316a3c6367c1092",
                "sha256": "f9c499de78c767a42e3fb4f59ad47e3555ef4cf399f73b1aa45b3c820bfa2778"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-manylinux_2_17_ppc64.manylinux2014_ppc64.whl",
            "has_sig": false,
            "md5_digest": "178487030000af81f316a3c6367c1092",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 2392047,
            "upload_time": "2025-08-09T01:09:06",
            "upload_time_iso_8601": "2025-08-09T01:09:06.232030Z",
            "url": "https://files.pythonhosted.org/packages/17/9d/6e4f9e60d5e140f301f777a09ebddb84091f4565f9141578ecfc5c1ceb46/passes_rs_py-3.0.1-cp312-cp312-manylinux_2_17_ppc64.manylinux2014_ppc64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fbb9a38ac42e0d60eef176fa4cb14afbc20fe1cfd92fc719c27ec90058746f1c",
                "md5": "53a27c4936bc9b33ae10da4f3373af77",
                "sha256": "2bd316e534bf0b2bda92641d92bbc0433f04f3d382631f9c44d683b65ac89190"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "53a27c4936bc9b33ae10da4f3373af77",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 2160834,
            "upload_time": "2025-08-09T01:09:09",
            "upload_time_iso_8601": "2025-08-09T01:09:09.668535Z",
            "url": "https://files.pythonhosted.org/packages/fb/b9/a38ac42e0d60eef176fa4cb14afbc20fe1cfd92fc719c27ec90058746f1c/passes_rs_py-3.0.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f2b45d8dc2c5074623725d8c53fc885213bf8e7e9207f411e6684607c1a7d1b8",
                "md5": "615e2c31a9fe530ba126a64fd4129621",
                "sha256": "22ed87d5018b2a60bd8202a34a921850266054623ae73abc60ed283bd0d4dfea"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "615e2c31a9fe530ba126a64fd4129621",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 2087161,
            "upload_time": "2025-08-09T01:09:11",
            "upload_time_iso_8601": "2025-08-09T01:09:11.473575Z",
            "url": "https://files.pythonhosted.org/packages/f2/b4/5d8dc2c5074623725d8c53fc885213bf8e7e9207f411e6684607c1a7d1b8/passes_rs_py-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "99e9e26eca4f3003b793ed31e7793ca90e5a9055f7cde8c1523dc0f080180185",
                "md5": "4ff6683ef66fe5b17812692fea1fd64c",
                "sha256": "f5fba8e6eec8aec043f7539f70b9ab192fb965b68d80acdb51444837b7ebd8f6"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "4ff6683ef66fe5b17812692fea1fd64c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 2039180,
            "upload_time": "2025-08-09T01:09:12",
            "upload_time_iso_8601": "2025-08-09T01:09:12.776925Z",
            "url": "https://files.pythonhosted.org/packages/99/e9/e26eca4f3003b793ed31e7793ca90e5a9055f7cde8c1523dc0f080180185/passes_rs_py-3.0.1-cp312-cp312-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b91193abd7fa91bdced6819d2010b12bbaa02e69328f873d47d5142c863a0fe7",
                "md5": "a7e02f1e69c728f7f1d6fb298a330aad",
                "sha256": "b670b5025adeda41dc74e150ec1922b001656e6d5bc8cc351ef152ad783293e8"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl",
            "has_sig": false,
            "md5_digest": "a7e02f1e69c728f7f1d6fb298a330aad",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 2158327,
            "upload_time": "2025-08-09T01:09:14",
            "upload_time_iso_8601": "2025-08-09T01:09:14.562374Z",
            "url": "https://files.pythonhosted.org/packages/b9/11/93abd7fa91bdced6819d2010b12bbaa02e69328f873d47d5142c863a0fe7/passes_rs_py-3.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "aad52e0c378ea1bb1b54c2a379b13f18b07dbb68d61ad093ba127fd28d937509",
                "md5": "f2acfad0f14da80444d47b472e5cd21f",
                "sha256": "3d84a161f733c9ae19b9d1bb830d60c4684bc27cbdce32844bde42fe9c884043"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "f2acfad0f14da80444d47b472e5cd21f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 2202748,
            "upload_time": "2025-08-09T01:09:15",
            "upload_time_iso_8601": "2025-08-09T01:09:15.828327Z",
            "url": "https://files.pythonhosted.org/packages/aa/d5/2e0c378ea1bb1b54c2a379b13f18b07dbb68d61ad093ba127fd28d937509/passes_rs_py-3.0.1-cp312-cp312-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6f56e167b346577f4e1a95e00bd274d8ca46e8ca3f68806532358efde0e596b8",
                "md5": "c6ec2512acc8d5c5a6d1bfee3d3af982",
                "sha256": "21deb39d87d60ab0bb0611346b57a6f74e75369504a15c128af3469fac8a9c58"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-musllinux_1_2_armv7l.whl",
            "has_sig": false,
            "md5_digest": "c6ec2512acc8d5c5a6d1bfee3d3af982",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 2206374,
            "upload_time": "2025-08-09T01:09:18",
            "upload_time_iso_8601": "2025-08-09T01:09:18.171362Z",
            "url": "https://files.pythonhosted.org/packages/6f/56/e167b346577f4e1a95e00bd274d8ca46e8ca3f68806532358efde0e596b8/passes_rs_py-3.0.1-cp312-cp312-musllinux_1_2_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "258b72182c6336260edf20f59f6b8efe1c0332face974d24557d3a314b9f4e35",
                "md5": "508307d6a5ee2362aee899dfba52825e",
                "sha256": "7a73200a5dab4ef91c1ea6453d087d8917d1101ab8d7a141fb4768c13ce8033c"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-musllinux_1_2_i686.whl",
            "has_sig": false,
            "md5_digest": "508307d6a5ee2362aee899dfba52825e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 2249878,
            "upload_time": "2025-08-09T01:09:20",
            "upload_time_iso_8601": "2025-08-09T01:09:20.144246Z",
            "url": "https://files.pythonhosted.org/packages/25/8b/72182c6336260edf20f59f6b8efe1c0332face974d24557d3a314b9f4e35/passes_rs_py-3.0.1-cp312-cp312-musllinux_1_2_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ba8fb81ea4b3d598335c5be0e44df90b7b53f6d73c5b1b904844f23f16e54430",
                "md5": "0be0fb5bf0eaaab64eb7024a56cfc4cf",
                "sha256": "13617a74b840b65c415b005d1558cb475042cc1586c223cbd30313462ec01ed4"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0be0fb5bf0eaaab64eb7024a56cfc4cf",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 2258803,
            "upload_time": "2025-08-09T01:09:21",
            "upload_time_iso_8601": "2025-08-09T01:09:21.637695Z",
            "url": "https://files.pythonhosted.org/packages/ba/8f/b81ea4b3d598335c5be0e44df90b7b53f6d73c5b1b904844f23f16e54430/passes_rs_py-3.0.1-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ad868d187efbd046f3b2ee1866df605572e4f2a6471d4a5285b4c09a84f01ca6",
                "md5": "95399385070cea18bbcfdec80e96ae60",
                "sha256": "62b09110f0b9f8938eedbd7735544778cf35063dac9a0d412d6cb42f798d6a9b"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "95399385070cea18bbcfdec80e96ae60",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 1544878,
            "upload_time": "2025-08-09T01:09:23",
            "upload_time_iso_8601": "2025-08-09T01:09:23.207723Z",
            "url": "https://files.pythonhosted.org/packages/ad/86/8d187efbd046f3b2ee1866df605572e4f2a6471d4a5285b4c09a84f01ca6/passes_rs_py-3.0.1-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "363272b029edccad1f7b20b86271af453c9b42ab3ee5eb07a23d411f8e0500c6",
                "md5": "2e070f6c161d972bf9e1826fc3a84563",
                "sha256": "74e8196c87ca48cda8b3055249fa25243a44421dcfe8489ad16aaab51c00cdfd"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "2e070f6c161d972bf9e1826fc3a84563",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.12",
            "size": 1637034,
            "upload_time": "2025-08-09T01:09:24",
            "upload_time_iso_8601": "2025-08-09T01:09:24.714656Z",
            "url": "https://files.pythonhosted.org/packages/36/32/72b029edccad1f7b20b86271af453c9b42ab3ee5eb07a23d411f8e0500c6/passes_rs_py-3.0.1-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7b4953d0bfed25a72727a3c72898324ccc750e45076e46035145ca5cd90edbb8",
                "md5": "e92947a7a84ce56bccc96527db24531f",
                "sha256": "6472fc56ac1e76bfbdcf272c11fce0824f1ddd5a61c6fd31ac9d2737eaa2f2cf"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "has_sig": false,
            "md5_digest": "e92947a7a84ce56bccc96527db24531f",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.12",
            "size": 3574302,
            "upload_time": "2025-08-09T01:09:26",
            "upload_time_iso_8601": "2025-08-09T01:09:26.065323Z",
            "url": "https://files.pythonhosted.org/packages/7b/49/53d0bfed25a72727a3c72898324ccc750e45076e46035145ca5cd90edbb8/passes_rs_py-3.0.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2bcc9d05862d7d6d0b6ad850e6513925e18b984830d7a05584f71e0deb9c7928",
                "md5": "501780d74de9142cb52f12f904f7108c",
                "sha256": "01b11197918dc3cfbb9490f67c5e840584e16fd80f5fa5d443194fc7c735c5ac"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "has_sig": false,
            "md5_digest": "501780d74de9142cb52f12f904f7108c",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.12",
            "size": 2309096,
            "upload_time": "2025-08-09T01:09:28",
            "upload_time_iso_8601": "2025-08-09T01:09:28.744418Z",
            "url": "https://files.pythonhosted.org/packages/2b/cc/9d05862d7d6d0b6ad850e6513925e18b984830d7a05584f71e0deb9c7928/passes_rs_py-3.0.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8717c21719cf31596d57a500eb64416b0d6f02f50166f08cf71dc85f52769408",
                "md5": "f899e54ac2ac52e3f308494335f4bdd1",
                "sha256": "4a8b80ba9cd5af8812b9de50e52e7600f2aa1d33ea3cb2719fe296886f24eba9"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp313-cp313-manylinux_2_17_ppc64.manylinux2014_ppc64.whl",
            "has_sig": false,
            "md5_digest": "f899e54ac2ac52e3f308494335f4bdd1",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.12",
            "size": 2392339,
            "upload_time": "2025-08-09T01:09:27",
            "upload_time_iso_8601": "2025-08-09T01:09:27.452107Z",
            "url": "https://files.pythonhosted.org/packages/87/17/c21719cf31596d57a500eb64416b0d6f02f50166f08cf71dc85f52769408/passes_rs_py-3.0.1-cp313-cp313-manylinux_2_17_ppc64.manylinux2014_ppc64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "01e54d82cc9d189bf713d1c9f76c8a8913fe0ee10b585fb7b24a04462c181d4c",
                "md5": "4b9f9573ad4e2c4817f33033cef850c3",
                "sha256": "141bdafc61dba4b69799579393c49ed250b955424426e28a38eeab9e59c00435"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "has_sig": false,
            "md5_digest": "4b9f9573ad4e2c4817f33033cef850c3",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.12",
            "size": 2160556,
            "upload_time": "2025-08-09T01:09:30",
            "upload_time_iso_8601": "2025-08-09T01:09:30.763920Z",
            "url": "https://files.pythonhosted.org/packages/01/e5/4d82cc9d189bf713d1c9f76c8a8913fe0ee10b585fb7b24a04462c181d4c/passes_rs_py-3.0.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1dc0e3733f6f6284b388ca1a3f1081cf9c31a8d9c44f71b0e27ae815189210b3",
                "md5": "c0fd1e6401c46659b33bd4c1c0f8c0b5",
                "sha256": "3c633773b504623617ab5b018a3c0321fcfbeff0202e401cfdb7bb1f4d60bbae"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c0fd1e6401c46659b33bd4c1c0f8c0b5",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.12",
            "size": 2087816,
            "upload_time": "2025-08-09T01:09:32",
            "upload_time_iso_8601": "2025-08-09T01:09:32.511303Z",
            "url": "https://files.pythonhosted.org/packages/1d/c0/e3733f6f6284b388ca1a3f1081cf9c31a8d9c44f71b0e27ae815189210b3/passes_rs_py-3.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "54c910856b74626bb364a2f140f44d9e4687a8d6ccb07705276cd8d7c7417140",
                "md5": "9545897499848bf672aef905d0edb6fb",
                "sha256": "f0d8712f52313e282e58376781f88e01be5f00f0c6fb170c3311b4dfd7aa4670"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp313-cp313-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "9545897499848bf672aef905d0edb6fb",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.12",
            "size": 2039482,
            "upload_time": "2025-08-09T01:09:33",
            "upload_time_iso_8601": "2025-08-09T01:09:33.779379Z",
            "url": "https://files.pythonhosted.org/packages/54/c9/10856b74626bb364a2f140f44d9e4687a8d6ccb07705276cd8d7c7417140/passes_rs_py-3.0.1-cp313-cp313-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "077f9e8f43aff59b753d4b0d34221bb462a34c23295e7361157a23d21bfd024c",
                "md5": "5799d9c2f688ff2d455e4df379bb8606",
                "sha256": "d239d7a15052037134fca3b5b2a65a2cc2cc901a4d990effcaad0f55116f06ac"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp313-cp313-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "5799d9c2f688ff2d455e4df379bb8606",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.12",
            "size": 2202955,
            "upload_time": "2025-08-09T01:09:35",
            "upload_time_iso_8601": "2025-08-09T01:09:35.114329Z",
            "url": "https://files.pythonhosted.org/packages/07/7f/9e8f43aff59b753d4b0d34221bb462a34c23295e7361157a23d21bfd024c/passes_rs_py-3.0.1-cp313-cp313-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "513a239eb7fc00c9245258b8dbfaf078aaec6291bd796ddf7756bd1084799be7",
                "md5": "28a78c1c4d2bdb9735485578bdb13d22",
                "sha256": "d5847b2d673e86f7d4a341fcf1803ede84197e985afaa10b0a213d26b5f38db8"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "28a78c1c4d2bdb9735485578bdb13d22",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.12",
            "size": 2259058,
            "upload_time": "2025-08-09T01:09:36",
            "upload_time_iso_8601": "2025-08-09T01:09:36.394064Z",
            "url": "https://files.pythonhosted.org/packages/51/3a/239eb7fc00c9245258b8dbfaf078aaec6291bd796ddf7756bd1084799be7/passes_rs_py-3.0.1-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "590540ad328131bbe2c65b5db5119afd2f8bfbe1f27b0d30afd2527959cf102b",
                "md5": "3255073af46d14f390f5267335355dff",
                "sha256": "f6ec558e8e7fdffab6a04eac404da0fd345629d1a30eb9253b82e924ffcdd825"
            },
            "downloads": -1,
            "filename": "passes_rs_py-3.0.1-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "3255073af46d14f390f5267335355dff",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.12",
            "size": 1636902,
            "upload_time": "2025-08-09T01:09:38",
            "upload_time_iso_8601": "2025-08-09T01:09:38.148670Z",
            "url": "https://files.pythonhosted.org/packages/59/05/40ad328131bbe2c65b5db5119afd2f8bfbe1f27b0d30afd2527959cf102b/passes_rs_py-3.0.1-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-09 01:09:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jontyms",
    "github_project": "neo-passes-rs",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "passes-rs-py"
}
        
Elapsed time: 2.92252s