PyHOPE


NamePyHOPE JSON
Version 0.0.2 PyPI version JSON
download
home_pagehttps://gitlab.iag.uni-stuttgart.de/flexi/codes/pyhope
SummaryComing soon
upload_time2024-11-12 10:23:18
maintainerNone
docs_urlNone
authorNumerics Research Group (NRG)
requires_pythonNone
licenseGPL-3.0
keywords pyhope mesh generator
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            PyHOPE (Python High-Order Preprocessing Environment) is an open-source Python framework for the generation of three-dimensional unstructured high-order meshes. These meshes are needed by high-order numerical methods like Discontinuous Galerkin, Spectral Element Methods, or pFEM, in order to retain their accuracy if the computational domain includes curved boundaries.

PyHOPE has been developed by the Numerics Research Group (NRG) lead by Prof. Andrea Beck at the Institute of Aerodynamics and Gas Dynamics at the University of Stuttgart, Germany.

PyHOPE is heavily inspired by [HOPR (High Order Preprocessor)](https://github.com/hopr-framework/hopr) and share the same input/output format. For more information and tutorials, please visit the [HOPR documentation](https://hopr.readthedocs.io)

This is a scientific project. If you use pyHOPE for publications or presentations in science, please support the project by citing our publications given at [numericsresearchgroup.org](https://numericsresearchgroup.org/publications.html).

# Installation
PyHOPE is built using standard Python packages. It is recommended to use a virtual environment for installation. The following commands create a virtual environment, here called `venv`, and install all required packages.
```
python -m venv venv
source venv/bin/activate
python -m pip install pyhope
```

# Usage
PyHOPE is invoked from the command line. Run parameters are read from a configuration file. The following output is obtained when running the example configuration file `tutorials/1-01-cartbox/parameter.ini`.
```
$ pyhope tutorials/1-01-cartbox/parameter.ini
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃ P y H O P E — Python High-Order Preprocessing Environment
┃ PyHOPE version 0.0.2
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
├─────────────────────────────────────────────
│ INIT PROGRAM...
│                        nThreads │ 4                               │ DEFAULT │
│ INIT PROGRAM DONE!
├─────────────────────────────────────────────
│ INIT OUTPUT...
│                     ProjectName │ 1-01-cartbox                    │ *CUSTOM │
│                    OutputFormat │ 0 [HDF5]                        │ *CUSTOM │
│                       DebugVisu │ F                               │ *CUSTOM │
│ INIT OUTPUT DONE!
├─────────────────────────────────────────────
│ INIT MESH...
│                            Mode │ 1                               │ *CUSTOM │
│                   BoundaryOrder │ 2                               │ DEFAULT │
│ INIT MESH DONE!
├─────────────────────────────────────────────
│ GENERATE MESH...
├────
│                          nZones │ 1                               │ *CUSTOM │
├── Generating zone 1
│                          Corner │ (/0.,0.,0. ,,1.,0.,0. ,,1.,1... │ *CUSTOM │
│                          nElems │ (/8,8,8/)                       │ *CUSTOM │
│                         BCIndex │ (/1,2,3,4,5,6/)                 │ *CUSTOM │
├────
├── Setting boundary conditions
├────
│                    BoundaryName │ BC_zminus                       │ *CUSTOM │
│                    BoundaryType │ (/4,0,0,0/)                     │ *CUSTOM │
│                    BoundaryName │ BC_yminus                       │ *CUSTOM │
│                    BoundaryType │ (/2,0,0,0/)                     │ *CUSTOM │
│                    BoundaryName │ BC_xplus                        │ *CUSTOM │
│                    BoundaryType │ (/2,0,0,0/)                     │ *CUSTOM │
│                    BoundaryName │ BC_yplus                        │ *CUSTOM │
│                    BoundaryType │ (/2,0,0,0/)                     │ *CUSTOM │
│                    BoundaryName │ BC_xminus                       │ *CUSTOM │
│                    BoundaryType │ (/2,0,0,0/)                     │ *CUSTOM │
│                    BoundaryName │ BC_zplus                        │ *CUSTOM │
│                    BoundaryType │ (/9,0,0,0/)                     │ *CUSTOM │
├────
├── Generated mesh with 512 cells
├────
│ GENERATE MESH DONE!
├─────────────────────────────────────────────
│                       doSortIJK │ False                           │ DEFAULT │
├────
├── Sorting elements along space-filling curve
├─────────────────────────────────────────────
│ CONNECT MESH...
├─────────────────────────────────────────────
├────
│  Number of sides          :         3072
│  Number of inner sides    :         2688
│  Number of boundary sides :          384
│  Number of periodic sides :            0
├────
│ CONNECT MESH DONE!
├─────────────────────────────────────────────
│ CHECK JACOBIANS...
├────
│              CheckElemJacobians │ True                            │ DEFAULT │
│             Processing Elements |█████████████████████████████████| 512/512 [100%] in 0.0s (30004.72/s)
├────
│ Scaled Jacobians
├─────────────────
│<0.0      │  0.00
│ 0.0-0.1  │  0.00
│ 0.1-0.2  │  0.00
│ 0.2-0.3  │  0.00
│ 0.3-0.4  │  0.00
│ 0.4-0.5  │  0.00
│ 0.5-0.6  │  0.00
│ 0.6-0.7  │  0.00
│ 0.7-0.8  │  0.00
│ 0.8-0.9  │  0.00
│>0.9-1.0  │ ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 512.00
├─────────────────
├─────────────────────────────────────────────
│ OUTPUT MESH...
├────
│   Planar-faced Hexahedra  :          512
├────
├── Writing HDF5 mesh to "1-01-cartbox_mesh.h5"
├────
│ OUTPUT MESH DONE!
┢━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃ PyHOPE completed in [0.18 sec]
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```


            

Raw data

            {
    "_id": null,
    "home_page": "https://gitlab.iag.uni-stuttgart.de/flexi/codes/pyhope",
    "name": "PyHOPE",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "PyHOPE, mesh generator",
    "author": "Numerics Research Group (NRG)",
    "author_email": "numerics@iag.uni-stuttgart.de",
    "download_url": "https://files.pythonhosted.org/packages/ca/5f/4a575bd252529c3fe76408d21f68d092bf7a774710f1f36af1d0ac844e87/pyhope-0.0.2.tar.gz",
    "platform": null,
    "description": "PyHOPE (Python High-Order Preprocessing Environment) is an open-source Python framework for the generation of three-dimensional unstructured high-order meshes. These meshes are needed by high-order numerical methods like Discontinuous Galerkin, Spectral Element Methods, or pFEM, in order to retain their accuracy if the computational domain includes curved boundaries.\n\nPyHOPE has been developed by the Numerics Research Group (NRG) lead by Prof. Andrea Beck at the Institute of Aerodynamics and Gas Dynamics at the University of Stuttgart, Germany.\n\nPyHOPE is heavily inspired by [HOPR (High Order Preprocessor)](https://github.com/hopr-framework/hopr) and share the same input/output format. For more information and tutorials, please visit the [HOPR documentation](https://hopr.readthedocs.io)\n\nThis is a scientific project. If you use pyHOPE for publications or presentations in science, please support the project by citing our publications given at [numericsresearchgroup.org](https://numericsresearchgroup.org/publications.html).\n\n# Installation\nPyHOPE is built using standard Python packages. It is recommended to use a virtual environment for installation. The following commands create a virtual environment, here called `venv`, and install all required packages.\n```\npython -m venv venv\nsource venv/bin/activate\npython -m pip install pyhope\n```\n\n# Usage\nPyHOPE is invoked from the command line. Run parameters are read from a configuration file. The following output is obtained when running the example configuration file `tutorials/1-01-cartbox/parameter.ini`.\n```\n$ pyhope tutorials/1-01-cartbox/parameter.ini\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\u2503 P y H O P E \u2014 Python High-Order Preprocessing Environment\n\u2503 PyHOPE version 0.0.2\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2502 INIT PROGRAM...\n\u2502                        nThreads \u2502 4                               \u2502 DEFAULT \u2502\n\u2502 INIT PROGRAM DONE!\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2502 INIT OUTPUT...\n\u2502                     ProjectName \u2502 1-01-cartbox                    \u2502 *CUSTOM \u2502\n\u2502                    OutputFormat \u2502 0 [HDF5]                        \u2502 *CUSTOM \u2502\n\u2502                       DebugVisu \u2502 F                               \u2502 *CUSTOM \u2502\n\u2502 INIT OUTPUT DONE!\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2502 INIT MESH...\n\u2502                            Mode \u2502 1                               \u2502 *CUSTOM \u2502\n\u2502                   BoundaryOrder \u2502 2                               \u2502 DEFAULT \u2502\n\u2502 INIT MESH DONE!\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2502 GENERATE MESH...\n\u251c\u2500\u2500\u2500\u2500\n\u2502                          nZones \u2502 1                               \u2502 *CUSTOM \u2502\n\u251c\u2500\u2500 Generating zone 1\n\u2502                          Corner \u2502 (/0.,0.,0. ,,1.,0.,0. ,,1.,1... \u2502 *CUSTOM \u2502\n\u2502                          nElems \u2502 (/8,8,8/)                       \u2502 *CUSTOM \u2502\n\u2502                         BCIndex \u2502 (/1,2,3,4,5,6/)                 \u2502 *CUSTOM \u2502\n\u251c\u2500\u2500\u2500\u2500\n\u251c\u2500\u2500 Setting boundary conditions\n\u251c\u2500\u2500\u2500\u2500\n\u2502                    BoundaryName \u2502 BC_zminus                       \u2502 *CUSTOM \u2502\n\u2502                    BoundaryType \u2502 (/4,0,0,0/)                     \u2502 *CUSTOM \u2502\n\u2502                    BoundaryName \u2502 BC_yminus                       \u2502 *CUSTOM \u2502\n\u2502                    BoundaryType \u2502 (/2,0,0,0/)                     \u2502 *CUSTOM \u2502\n\u2502                    BoundaryName \u2502 BC_xplus                        \u2502 *CUSTOM \u2502\n\u2502                    BoundaryType \u2502 (/2,0,0,0/)                     \u2502 *CUSTOM \u2502\n\u2502                    BoundaryName \u2502 BC_yplus                        \u2502 *CUSTOM \u2502\n\u2502                    BoundaryType \u2502 (/2,0,0,0/)                     \u2502 *CUSTOM \u2502\n\u2502                    BoundaryName \u2502 BC_xminus                       \u2502 *CUSTOM \u2502\n\u2502                    BoundaryType \u2502 (/2,0,0,0/)                     \u2502 *CUSTOM \u2502\n\u2502                    BoundaryName \u2502 BC_zplus                        \u2502 *CUSTOM \u2502\n\u2502                    BoundaryType \u2502 (/9,0,0,0/)                     \u2502 *CUSTOM \u2502\n\u251c\u2500\u2500\u2500\u2500\n\u251c\u2500\u2500 Generated mesh with 512 cells\n\u251c\u2500\u2500\u2500\u2500\n\u2502 GENERATE MESH DONE!\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2502                       doSortIJK \u2502 False                           \u2502 DEFAULT \u2502\n\u251c\u2500\u2500\u2500\u2500\n\u251c\u2500\u2500 Sorting elements along space-filling curve\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2502 CONNECT MESH...\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u251c\u2500\u2500\u2500\u2500\n\u2502  Number of sides          :         3072\n\u2502  Number of inner sides    :         2688\n\u2502  Number of boundary sides :          384\n\u2502  Number of periodic sides :            0\n\u251c\u2500\u2500\u2500\u2500\n\u2502 CONNECT MESH DONE!\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2502 CHECK JACOBIANS...\n\u251c\u2500\u2500\u2500\u2500\n\u2502              CheckElemJacobians \u2502 True                            \u2502 DEFAULT \u2502\n\u2502             Processing Elements |\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 512/512 [100%] in 0.0s (30004.72/s)\n\u251c\u2500\u2500\u2500\u2500\n\u2502 Scaled Jacobians\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2502<0.0      \u2502  0.00\n\u2502 0.0-0.1  \u2502  0.00\n\u2502 0.1-0.2  \u2502  0.00\n\u2502 0.2-0.3  \u2502  0.00\n\u2502 0.3-0.4  \u2502  0.00\n\u2502 0.4-0.5  \u2502  0.00\n\u2502 0.5-0.6  \u2502  0.00\n\u2502 0.6-0.7  \u2502  0.00\n\u2502 0.7-0.8  \u2502  0.00\n\u2502 0.8-0.9  \u2502  0.00\n\u2502>0.9-1.0  \u2502 \u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587 512.00\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\u2502 OUTPUT MESH...\n\u251c\u2500\u2500\u2500\u2500\n\u2502   Planar-faced Hexahedra  :          512\n\u251c\u2500\u2500\u2500\u2500\n\u251c\u2500\u2500 Writing HDF5 mesh to \"1-01-cartbox_mesh.h5\"\n\u251c\u2500\u2500\u2500\u2500\n\u2502 OUTPUT MESH DONE!\n\u2522\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\u2503 PyHOPE completed in [0.18 sec]\n\u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n```\n\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "Coming soon",
    "version": "0.0.2",
    "project_urls": {
        "Homepage": "https://gitlab.iag.uni-stuttgart.de/flexi/codes/pyhope",
        "Repository": "https://gitlab.iag.uni-stuttgart.de/flexi/codes/pyhope"
    },
    "split_keywords": [
        "pyhope",
        " mesh generator"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a7cc87d5ca789a749f94edeffe2a76d55b01b91086deccc3bda3ef0b8da15652",
                "md5": "adb90e691bfc58a19a5644f8c93d8355",
                "sha256": "d82040865162a6c4275f119522fd57063f332831f28b823b9cd94a70eda27e38"
            },
            "downloads": -1,
            "filename": "pyhope-0.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "adb90e691bfc58a19a5644f8c93d8355",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 80589,
            "upload_time": "2024-11-12T10:23:17",
            "upload_time_iso_8601": "2024-11-12T10:23:17.453494Z",
            "url": "https://files.pythonhosted.org/packages/a7/cc/87d5ca789a749f94edeffe2a76d55b01b91086deccc3bda3ef0b8da15652/pyhope-0.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ca5f4a575bd252529c3fe76408d21f68d092bf7a774710f1f36af1d0ac844e87",
                "md5": "c25510fe818de2455a5abd5e517652c8",
                "sha256": "27663a09d08878139eb87c531cfb89f36a06a03b5368ba73a8d07ed2bdd96c93"
            },
            "downloads": -1,
            "filename": "pyhope-0.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "c25510fe818de2455a5abd5e517652c8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 54799,
            "upload_time": "2024-11-12T10:23:18",
            "upload_time_iso_8601": "2024-11-12T10:23:18.538464Z",
            "url": "https://files.pythonhosted.org/packages/ca/5f/4a575bd252529c3fe76408d21f68d092bf7a774710f1f36af1d0ac844e87/pyhope-0.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-12 10:23:18",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "pyhope"
}
        
Elapsed time: 0.44305s