pyfurnace


Namepyfurnace JSON
Version 1.0.3 PyPI version JSON
download
home_pageNone
SummaryAn integrated design engine for RNA origami
upload_time2025-10-18 00:38:28
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords rna dna nucleic acids bioinformatics design
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Alt Text](https://github.com/Biophysical-Engineering-Group/pyFuRNAce/blob/main/pyfurnace/app/static/logo_text.png?raw=true)

**pyFuRNAce** is an open-source Python package and web-based design engine for creating complex RNA nanostructures using the co-transcriptional RNA origami approach. It streamlines the entire design pipeline — from structural motif assembly to sequence generation and primer design — into an intuitive, user-friendly platform.

[![Downloads/MONTH](https://static.pepy.tech/personalized-badge/pyfurnace?period=month&units=INTERNATIONAL_SYSTEM&left_color=GREY&right_color=GREEN&left_text=Downloads/Month)](https://pepy.tech/projects/pyfurnace) [![PyPI Downloads](https://static.pepy.tech/personalized-badge/pyfurnace?period=total&units=INTERNATIONAL_SYSTEM&left_color=GREY&right_color=RED&left_text=Downloads)](https://pepy.tech/projects/pyfurnace)

#### pyFuRNAce design API coverage:
[![codecov](https://codecov.io/gh/Biophysical-Engineering-Group/pyFuRNAce/graph/badge.svg?token=EQX6C990WP)](https://codecov.io/gh/Biophysical-Engineering-Group/pyFuRNAce)

<!-- **Documentation & Source:** _Coming Soon_\ -->
**WebApp:** [pyfurnace.de](http://pyfurnace.de)\
**GitHub:** [Biophysical-Engineering-Group/pyFuRNAce](https://github.com/Biophysical-Engineering-Group/pyFuRNAce)\
**PyPI:** [pyfurnace](https://pypi.org/project/pyfurnace/)\
**Script API examples:** [Code Examples](https://github.com/Biophysical-Engineering-Group/pyFuRNAce/tree/main/examples)\
**Documentation:** [Read the Docs](https://pyfurnace.readthedocs.io/en/latest/)

![Alt Text](https://github.com/Biophysical-Engineering-Group/pyFuRNAce/blob/main/vid/demo_1min.gif?raw=true)

---

## 🚀 Features

- 🧩 **Motif-based assembly:** Build RNA structures using a rich, expandable library of motifs including stems, dovetails, kissing loops, aptamers, and ribozymes.
- 🎨 **GUI & Real-time 3D Visualization:** Interactive blueprint editor and real-time 3D rendering via Streamlit and oxView.
- 🔄 **Integrated Workflow:** Design, generate, convert, and prepare your RNA origami in one unified interface.
- 🧬 **Sequence Generation & Optimization:** Built-in support for sequence folding (Revolvr + ViennaRNA).
- 🧪 **Primer & Template Design:** Includes tools for DNA conversion, promoter addition, and primer calculations.
- 💻 **Python Scripting API:** Automate complex designs or build at scale using a programmable interface.

### System requirements

- Python 3.10 or later
- Operating System: Linux, macOS, or Windows
- dependencies are listed in `requirements.txt`; with stable versions recommended in `stable_requirements.txt`

---

## 📦 Installation

Typical installation time: 5 minutes

### Pyfurnace

Note: pyFuRNAce requires Python 3.10 or later, and the local installation always includes the GUI via Streamlit.

#### Install from PyPI
Install or upgrade the latest stable version of pyFuRNAce from PyPI using pip (and OAT from GitHub):

```bash
pip install --upgrade pyfurnace
```

#### Install from GitHub
Install the latest development version of pyFuRNAce (and OAT) directly from the GitHub repository:

```bash
pip install "git+https://github.com/Biophysical-Engineering-Group/pyFuRNAce.git"
```

### Extra Dependencies

**Note**: The **pyFuRNAce installation does not include the oxDNA analysis tools (OAT)**.

The OAT package is used to convert 3D structures from/to PDB files and write oxDNA force files.
To install the OAT package, you can use the following command (the **git** command is required, you can install it via anaconda with `conda install git`):

```bash
pip install "git+https://github.com/lorenzo-rovigatti/oxDNA.git#subdirectory=analysis"
```

To run sequence generation, a `Perl` interpreter is required by the Revolvr script from ROAD. It is usually installed by default on most systems. If not, you can install it via Anaconda with `conda install bioconda-legacy::perl`.

## 🖥️ Running the Web Application

To run the web application locally after installation, use the following command:

```bash
pyfurnace
```

Or alternatively `python -m pyfurnace`.

This will lunch the GUI in your default web browser.
You can also use the hosted version at [pyfurnace.de](http://pyfurnace.de).
The WebApp is built using Streamlit and can be run locally or on a server. You can access the webapp directly at
[pyfurnace.streamlit.app](https://pyfurnace.streamlit.app).

[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://pyfurnace.streamlit.app/)

## 🎛 Modules

1. Design: Create and edit RNA structure blueprints. Visualize assembled structures in 3D.
Define custom motifs via GUI or scripting.
2. Generate: use inverse folding (Revolvr) to produce RNA sequences matching the target structure. Evaluate folding energies and structural ensemble diversity.
3. Convert: Translate RNA sequences to DNA templates. Add transcriptional promoters (e.g., T7). Analyze sequence properties (e.g., GC content, dimers).
4. Prepare: Design PCR primers with melting temperature calculations. Generate input files for molecular dynamics simulations with oxRNA.

## 🧑‍💻 Using the Python API

```python
import pyfurnace as pf

line1 = [pf.TetraLoop(),
        pf.Stem(7),
        pf.Dovetail(-2, up_cross=False),
        pf.Stem(6),
        pf.KissingDimer(),
        pf.Stem(6),
        pf.Dovetail(-2, up_cross=False),
        pf.Stem(7),
        pf.TetraLoop(True),
        ]

line2 = [pf.TetraLoop(),
        pf.Stem(7),
        pf.Dovetail(-2, down_cross=False),
        pf.Stem(10),
        pf.start_end_stem(),
        pf.Stem(10),
        pf.Dovetail(-2, down_cross=False),
        pf.Stem(7),
        pf.TetraLoop(True),
        ]

origami = pf.Origami(line1, line2, aling='center')

print(origami)
print(origami.structure)
print(origami.sequence)
```

#### -> Output:
```
                        ╭───────╮
╭CGNNNKNNN──SS──NKNNNNAA┼─NNNNNN╯╭─ANNKNNN──SS──NNNKNNNUU╮
│  ┊┊┊┊┊┊┊  ┊┊  ┊┊┊┊┊┊  │ ┊┊┊┊┊┊ │  ┊┊┊┊┊┊  ┊┊  ┊┊┊┊┊┊┊  │
╰UUNNNKNNN──SS╮╭NKNNNNA─╯╭NNNNNN─┼AANNKNNN──SS╮╭NNNKNNNGC╯
              ││         ╰───────╯            ││
          ╭───╯│                         ╭────╯│
          │╭───╯                         │╭────╯
          ↑↓                             ↑↓
╭CGNKNKNNN╯╰SS──NKNNNKNNNN─3 5─NNNKNNNKNN╯╰SS──NKNNKNNUU╮
│  ┊┊┊┊┊┊┊  ┊┊  ┊┊┊┊┊┊┊┊┊┊     ┊┊┊┊┊┊┊┊┊┊  ┊┊  ┊┊┊┊┊┊┊  │
╰UUNKNKNNN──SS──NKNNNKNNNN─────NNNKNNNKNN──SS──NKNNKNNGC╯
((((((((((((((((((..[[[[[[.))))))))(((((((....)))))))(((((((((....)))))))))))))))))))(((((((((((((((((((....)))))))(((((((((....)))))))))((((((..]]]]]].))))))))))))))))))
NNNKNNNKNNSSNNNKNNAANNNNNNANNKNNNSSNNNKNNNUUCGNNNKNNNSSNKNNKNNUUCGNNKNNKNSSNNKNNNKNNNNNNNKNNNKNSSNNNKNKNUUCGNKNKNNNSSNNNKNNNUUCGNNNKNNNSSNKNNNNAANNNNNNANNNNKNSSNKNNNKNNNN
```

### 📚 Examples

Explore tutorials and example notebooks in the examples directory.

## 📜 License

Code is licensed under the GNU General Public License v3.0 ([GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.en.html))

[![License: GPL-3.0](https://img.shields.io/badge/License-GPL%20v3-lightgrey.svg)](https://www.gnu.org/licenses/gpl-3.0.en.html)


## 📜 Logo Copyright & Permission
The pyFuRNAce logo is original artwork created by Luca Monari.

Luca Monari retains full copyright ownership of the logo.

Permission is granted to reproduce the logo in academic, scientific, or educational materials that reference or use pyFuRNAce, including publications, presentations, and documentation (whether commercial or non-commercial).

Any other use of the logo requires prior written permission from the copyright holder.

## 🧠 Citation

If you use pyFuRNAce in your research, please cite:
Monari, L., Braun, I., Poppleton, E. & Göpfrich, K. PyFuRNAce: An integrated design engine for RNA origami (2025) [doi:10.1101/2025.04.17.647389](https://doi.org/10.1101/2025.04.17.647389).

## 🙏 Acknowledgements

This work was supported by the ERC Starting Grant ENSYNC (No. 101076997) and Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under CRC 392 and CRC 1638. This work was supported by a Research Grant from HFSP (Ref.-No: RGP003/2023, DOI: https://doi.org/10.52044/HFSP.RGP0032023.pc.gr.168589). The authors thank the Max Planck Society for access to computational resources and the Alfried Krupp von Bohlen und Halbach Foundation. E.P. was supported through state funds approved by the State Parliament of Baden-Württemberg for the Innovation Campus Health + Life Science Alliance Heidelberg Mannheim. We thank Cody Geary for his feedback on the user interface design. We thank Dominic Kempf for his feedback on software development and testing.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pyfurnace",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "RNA, DNA, nucleic acids, bioinformatics, design",
    "author": null,
    "author_email": "Luca Monari <l.monari@zmbh.uni-heidelberg.de>",
    "download_url": "https://files.pythonhosted.org/packages/92/c8/e76ee992870c11a6bb6434a0cf85ca666b6b2e2ff1b8ab50d2c6011607a3/pyfurnace-1.0.3.tar.gz",
    "platform": null,
    "description": "![Alt Text](https://github.com/Biophysical-Engineering-Group/pyFuRNAce/blob/main/pyfurnace/app/static/logo_text.png?raw=true)\n\n**pyFuRNAce** is an open-source Python package and web-based design engine for creating complex RNA nanostructures using the co-transcriptional RNA origami approach. It streamlines the entire design pipeline \u2014 from structural motif assembly to sequence generation and primer design \u2014 into an intuitive, user-friendly platform.\n\n[![Downloads/MONTH](https://static.pepy.tech/personalized-badge/pyfurnace?period=month&units=INTERNATIONAL_SYSTEM&left_color=GREY&right_color=GREEN&left_text=Downloads/Month)](https://pepy.tech/projects/pyfurnace) [![PyPI Downloads](https://static.pepy.tech/personalized-badge/pyfurnace?period=total&units=INTERNATIONAL_SYSTEM&left_color=GREY&right_color=RED&left_text=Downloads)](https://pepy.tech/projects/pyfurnace)\n\n#### pyFuRNAce design API coverage:\n[![codecov](https://codecov.io/gh/Biophysical-Engineering-Group/pyFuRNAce/graph/badge.svg?token=EQX6C990WP)](https://codecov.io/gh/Biophysical-Engineering-Group/pyFuRNAce)\n\n<!-- **Documentation & Source:** _Coming Soon_\\ -->\n**WebApp:** [pyfurnace.de](http://pyfurnace.de)\\\n**GitHub:** [Biophysical-Engineering-Group/pyFuRNAce](https://github.com/Biophysical-Engineering-Group/pyFuRNAce)\\\n**PyPI:** [pyfurnace](https://pypi.org/project/pyfurnace/)\\\n**Script API examples:** [Code Examples](https://github.com/Biophysical-Engineering-Group/pyFuRNAce/tree/main/examples)\\\n**Documentation:** [Read the Docs](https://pyfurnace.readthedocs.io/en/latest/)\n\n![Alt Text](https://github.com/Biophysical-Engineering-Group/pyFuRNAce/blob/main/vid/demo_1min.gif?raw=true)\n\n---\n\n## \ud83d\ude80 Features\n\n- \ud83e\udde9 **Motif-based assembly:** Build RNA structures using a rich, expandable library of motifs including stems, dovetails, kissing loops, aptamers, and ribozymes.\n- \ud83c\udfa8 **GUI & Real-time 3D Visualization:** Interactive blueprint editor and real-time 3D rendering via Streamlit and oxView.\n- \ud83d\udd04 **Integrated Workflow:** Design, generate, convert, and prepare your RNA origami in one unified interface.\n- \ud83e\uddec **Sequence Generation & Optimization:** Built-in support for sequence folding (Revolvr + ViennaRNA).\n- \ud83e\uddea **Primer & Template Design:** Includes tools for DNA conversion, promoter addition, and primer calculations.\n- \ud83d\udcbb **Python Scripting API:** Automate complex designs or build at scale using a programmable interface.\n\n### System requirements\n\n- Python 3.10 or later\n- Operating System: Linux, macOS, or Windows\n- dependencies are listed in `requirements.txt`; with stable versions recommended in `stable_requirements.txt`\n\n---\n\n## \ud83d\udce6 Installation\n\nTypical installation time: 5 minutes\n\n### Pyfurnace\n\nNote: pyFuRNAce requires Python 3.10 or later, and the local installation always includes the GUI via Streamlit.\n\n#### Install from PyPI\nInstall or upgrade the latest stable version of pyFuRNAce from PyPI using pip (and OAT from GitHub):\n\n```bash\npip install --upgrade pyfurnace\n```\n\n#### Install from GitHub\nInstall the latest development version of pyFuRNAce (and OAT) directly from the GitHub repository:\n\n```bash\npip install \"git+https://github.com/Biophysical-Engineering-Group/pyFuRNAce.git\"\n```\n\n### Extra Dependencies\n\n**Note**: The **pyFuRNAce installation does not include the oxDNA analysis tools (OAT)**.\n\nThe OAT package is used to convert 3D structures from/to PDB files and write oxDNA force files.\nTo install the OAT package, you can use the following command (the **git** command is required, you can install it via anaconda with `conda install git`):\n\n```bash\npip install \"git+https://github.com/lorenzo-rovigatti/oxDNA.git#subdirectory=analysis\"\n```\n\nTo run sequence generation, a `Perl` interpreter is required by the Revolvr script from ROAD. It is usually installed by default on most systems. If not, you can install it via Anaconda with `conda install bioconda-legacy::perl`.\n\n## \ud83d\udda5\ufe0f Running the Web Application\n\nTo run the web application locally after installation, use the following command:\n\n```bash\npyfurnace\n```\n\nOr alternatively `python -m pyfurnace`.\n\nThis will lunch the GUI in your default web browser.\nYou can also use the hosted version at [pyfurnace.de](http://pyfurnace.de).\nThe WebApp is built using Streamlit and can be run locally or on a server. You can access the webapp directly at\n[pyfurnace.streamlit.app](https://pyfurnace.streamlit.app).\n\n[![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://pyfurnace.streamlit.app/)\n\n## \ud83c\udf9b Modules\n\n1. Design: Create and edit RNA structure blueprints. Visualize assembled structures in 3D.\nDefine custom motifs via GUI or scripting.\n2. Generate: use inverse folding (Revolvr) to produce RNA sequences matching the target structure. Evaluate folding energies and structural ensemble diversity.\n3. Convert: Translate RNA sequences to DNA templates. Add transcriptional promoters (e.g., T7). Analyze sequence properties (e.g., GC content, dimers).\n4. Prepare: Design PCR primers with melting temperature calculations. Generate input files for molecular dynamics simulations with oxRNA.\n\n## \ud83e\uddd1\u200d\ud83d\udcbb Using the Python API\n\n```python\nimport pyfurnace as pf\n\nline1 = [pf.TetraLoop(),\n        pf.Stem(7),\n        pf.Dovetail(-2, up_cross=False),\n        pf.Stem(6),\n        pf.KissingDimer(),\n        pf.Stem(6),\n        pf.Dovetail(-2, up_cross=False),\n        pf.Stem(7),\n        pf.TetraLoop(True),\n        ]\n\nline2 = [pf.TetraLoop(),\n        pf.Stem(7),\n        pf.Dovetail(-2, down_cross=False),\n        pf.Stem(10),\n        pf.start_end_stem(),\n        pf.Stem(10),\n        pf.Dovetail(-2, down_cross=False),\n        pf.Stem(7),\n        pf.TetraLoop(True),\n        ]\n\norigami = pf.Origami(line1, line2, aling='center')\n\nprint(origami)\nprint(origami.structure)\nprint(origami.sequence)\n```\n\n#### -> Output:\n```\n                        \u256d\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u256dCGNNNKNNN\u2500\u2500SS\u2500\u2500NKNNNNAA\u253c\u2500NNNNNN\u256f\u256d\u2500ANNKNNN\u2500\u2500SS\u2500\u2500NNNKNNNUU\u256e\n\u2502  \u250a\u250a\u250a\u250a\u250a\u250a\u250a  \u250a\u250a  \u250a\u250a\u250a\u250a\u250a\u250a  \u2502 \u250a\u250a\u250a\u250a\u250a\u250a \u2502  \u250a\u250a\u250a\u250a\u250a\u250a  \u250a\u250a  \u250a\u250a\u250a\u250a\u250a\u250a\u250a  \u2502\n\u2570UUNNNKNNN\u2500\u2500SS\u256e\u256dNKNNNNA\u2500\u256f\u256dNNNNNN\u2500\u253cAANNKNNN\u2500\u2500SS\u256e\u256dNNNKNNNGC\u256f\n              \u2502\u2502         \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f            \u2502\u2502\n          \u256d\u2500\u2500\u2500\u256f\u2502                         \u256d\u2500\u2500\u2500\u2500\u256f\u2502\n          \u2502\u256d\u2500\u2500\u2500\u256f                         \u2502\u256d\u2500\u2500\u2500\u2500\u256f\n          \u2191\u2193                             \u2191\u2193\n\u256dCGNKNKNNN\u256f\u2570SS\u2500\u2500NKNNNKNNNN\u25003 5\u2500NNNKNNNKNN\u256f\u2570SS\u2500\u2500NKNNKNNUU\u256e\n\u2502  \u250a\u250a\u250a\u250a\u250a\u250a\u250a  \u250a\u250a  \u250a\u250a\u250a\u250a\u250a\u250a\u250a\u250a\u250a\u250a     \u250a\u250a\u250a\u250a\u250a\u250a\u250a\u250a\u250a\u250a  \u250a\u250a  \u250a\u250a\u250a\u250a\u250a\u250a\u250a  \u2502\n\u2570UUNKNKNNN\u2500\u2500SS\u2500\u2500NKNNNKNNNN\u2500\u2500\u2500\u2500\u2500NNNKNNNKNN\u2500\u2500SS\u2500\u2500NKNNKNNGC\u256f\n((((((((((((((((((..[[[[[[.))))))))(((((((....)))))))(((((((((....)))))))))))))))))))(((((((((((((((((((....)))))))(((((((((....)))))))))((((((..]]]]]].))))))))))))))))))\nNNNKNNNKNNSSNNNKNNAANNNNNNANNKNNNSSNNNKNNNUUCGNNNKNNNSSNKNNKNNUUCGNNKNNKNSSNNKNNNKNNNNNNNKNNNKNSSNNNKNKNUUCGNKNKNNNSSNNNKNNNUUCGNNNKNNNSSNKNNNNAANNNNNNANNNNKNSSNKNNNKNNNN\n```\n\n### \ud83d\udcda Examples\n\nExplore tutorials and example notebooks in the examples directory.\n\n## \ud83d\udcdc License\n\nCode is licensed under the GNU General Public License v3.0 ([GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.en.html))\n\n[![License: GPL-3.0](https://img.shields.io/badge/License-GPL%20v3-lightgrey.svg)](https://www.gnu.org/licenses/gpl-3.0.en.html)\n\n\n## \ud83d\udcdc Logo Copyright & Permission\nThe pyFuRNAce logo is original artwork created by Luca Monari.\n\nLuca Monari retains full copyright ownership of the logo.\n\nPermission is granted to reproduce the logo in academic, scientific, or educational materials that reference or use pyFuRNAce, including publications, presentations, and documentation (whether commercial or non-commercial).\n\nAny other use of the logo requires prior written permission from the copyright holder.\n\n## \ud83e\udde0 Citation\n\nIf you use pyFuRNAce in your research, please cite:\nMonari, L., Braun, I., Poppleton, E. & G\u00f6pfrich, K. PyFuRNAce: An integrated design engine for RNA origami (2025) [doi:10.1101/2025.04.17.647389](https://doi.org/10.1101/2025.04.17.647389).\n\n## \ud83d\ude4f Acknowledgements\n\nThis work was supported by the ERC Starting Grant ENSYNC (No. 101076997) and Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under CRC 392 and CRC 1638. This work was supported by a Research Grant from HFSP (Ref.-No: RGP003/2023, DOI: https://doi.org/10.52044/HFSP.RGP0032023.pc.gr.168589). The authors thank the Max Planck Society for access to computational resources and the Alfried Krupp von Bohlen und Halbach Foundation. E.P. was supported through state funds approved by the State Parliament of Baden-W\u00fcrttemberg for the Innovation Campus Health + Life Science Alliance Heidelberg Mannheim. We thank Cody Geary for his feedback on the user interface design. We thank Dominic Kempf for his feedback on software development and testing.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "An integrated design engine for RNA origami",
    "version": "1.0.3",
    "project_urls": null,
    "split_keywords": [
        "rna",
        " dna",
        " nucleic acids",
        " bioinformatics",
        " design"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cc0b61b3955a52027656878f4423c93580f04a04357fdbaf7cfe46516b6c4ccd",
                "md5": "ffa824158414162d95369809f8cc99e8",
                "sha256": "fc549a4a19bdaec96c882f8d103fa676ebb479e65b5a79860e71ebfed53940f7"
            },
            "downloads": -1,
            "filename": "pyfurnace-1.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ffa824158414162d95369809f8cc99e8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 406762,
            "upload_time": "2025-10-18T00:38:27",
            "upload_time_iso_8601": "2025-10-18T00:38:27.300145Z",
            "url": "https://files.pythonhosted.org/packages/cc/0b/61b3955a52027656878f4423c93580f04a04357fdbaf7cfe46516b6c4ccd/pyfurnace-1.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "92c8e76ee992870c11a6bb6434a0cf85ca666b6b2e2ff1b8ab50d2c6011607a3",
                "md5": "9ce9b055028e339fb0d458dce0b525e7",
                "sha256": "a63ffddd0b420c07daeeae1482a342c9f32e0e907f5b7877e1f2156bb3664605"
            },
            "downloads": -1,
            "filename": "pyfurnace-1.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "9ce9b055028e339fb0d458dce0b525e7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 374998,
            "upload_time": "2025-10-18T00:38:28",
            "upload_time_iso_8601": "2025-10-18T00:38:28.984312Z",
            "url": "https://files.pythonhosted.org/packages/92/c8/e76ee992870c11a6bb6434a0cf85ca666b6b2e2ff1b8ab50d2c6011607a3/pyfurnace-1.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-18 00:38:28",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pyfurnace"
}
        
Elapsed time: 2.35612s