https://github.com/d-passaro/pyplumbing
pyPlumbing is a sage package which allows for the computation of Z-hat invariant on plumbing manifolds at arbitrary gauge group.
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.0%) to scientific vocabulary
Repository
pyPlumbing is a sage package which allows for the computation of Z-hat invariant on plumbing manifolds at arbitrary gauge group.
Basic Info
- Host: GitHub
- Owner: d-passaro
- License: unlicense
- Language: Jupyter Notebook
- Default Branch: main
- Size: 2.12 MB
Statistics
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
pyPlumbing
pyPlumbing is a SageMath package that provides specialized plumbing computation tools utilizing SageMath's powerful mathematical capabilities for an efficient computation of Ẑ-invariants.
WARNING
This project is a work in progress, it is not finished and it's still rough and in testing. Be critical of the results of this package. If you see anything unusual, please report it.
Table of Contents
Features
- Efficient computations of Ẑ invariants on negative plumbed manifolds.
- Computation of Ẑ invariants with any simply laced Lie Group.
- Integration with SageMath's mathematical environment.
- Extensible and open-source.
Prerequisites
- SageMath: Version 9.0 or higher.
- Conda: Recommended for managing environments and packages.
Installation
Installing SageMath (Preferred with Conda)
The preferred method to install SageMath is using Conda, which simplifies environment management and package installation.
- Install Conda
If you don't have Conda installed, download and install Anaconda or Miniconda.
- Create a Conda Environment for SageMath
Open your terminal and run:
bash
conda create -n sage sage python=3.9 -c conda-forge
This command creates a new environment named sage with SageMath and Python 3.9 installed from the conda-forge channel.
- Activate the SageMath Environment
bash
conda activate sage
- Verify SageMath Installation
Run SageMath to ensure it's installed correctly:
bash
sage
You should see the SageMath command-line interface start.
Additional Resources:
- SageMath Conda Package: https://anaconda.org/conda-forge/sage
- SageMath Installation Guide: https://doc.sagemath.org/html/en/installation/conda.html
Installing pyPlumbing
With SageMath installed and the environment activated, you can now install pyPlumbing.
- Clone the pyPlumbing Repository
bash
git clone https://github.com/yourusername/pyPlumbing.git
- Navigate to the pyPlumbing Directory
bash
cd pyPlumbing
- Clean Previous Builds (Optional but Recommended)
Ensure that any previous build artifacts are removed:
bash
rm -rf build/ dist/ src/pyPlumbing/*.c
find src/pyPlumbing/ -type f -name '*.py' ! -name '__init__.py' -delete
- Install pyPlumbing
Use SageMath's pip to install the package without build isolation:
bash
sage -pip install --no-build-isolation .
Important: The --no-build-isolation flag is necessary because pyPlumbing depends on SageMath during the build process, and SageMath isn't available in the isolated build environment that pip uses by default.
- Verify Installation
Start SageMath and import pyPlumbing:
bash
sage
In the SageMath shell:
python
sage: import pyPlumbing
sage: P = pyPlumbing.Plumbing.from_Seifert_data([1,-1/2,-1/3,-1/5])
sage: P.display()
Note for Apple Silicon users
If you are trying to install pyPlumbing on a modern Apple computer with an Apple Silicon chip, you should make sure Rosetta 2 is enabled on your terminal.
Usage
After installation, you can use pyPlumbing within SageMath:
python
sage: from pyPlumbing import Plumbing
sage: …
Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository on GitHub.
- Create a new branch with a descriptive name.
- Make your changes and commit them with clear messages.
- Push your changes to your fork.
- Submit a pull request describing your changes.
License
This project is licensed under the unlicense - see the LICENSE file for details.
Contact
- Author: Davide Passaro
- Email: passaro.davide@protonmail.com
- GitHub: d-passaro
Owner
- Login: d-passaro
- Kind: user
- Repositories: 2
- Profile: https://github.com/d-passaro
GitHub Events
Total
- Watch event: 1
- Push event: 18
Last Year
- Watch event: 1
- Push event: 18