[](https://results.pre-commit.ci/latest/github/ornlneutronimaging/timepix_geometry_correction/main)
# Python Project Template (examplepyapp)
This repository contains a modern Python project managed entirely with [Pixi](https://pixi.sh/), a reproducible and declarative environment manager.
All build and packaging metadata is consolidated in a single `pyproject.toml` file, following modern Python packaging standards.
## Getting Started
This project uses [Pixi](https://pixi.sh/) as the single tool for managing environments, dependencies, packaging, and task execution.
### 1. Install Pixi
Follow the installation instructions from the [Pixi website](https://pixi.sh/), or use:
```bash
curl -fsSL https://pixi.sh/install.sh | bash
```
### 2. Set Up the Environment
Run the following command to create and activate the project environment with all dependencies:
```bash
pixi install
```
### 3. Explore Available Tasks
Use the following command to list all project-defined tasks:
```bash
pixi run
```
Example tasks:
- `build-pypi`: build the PyPI wheel
- `build-conda`: build the Conda package
- `test`: run the test suite
- `conda-publish`, `pypi-publish`: publish the built artifacts
- `clean-*`: clean build artifacts
### 4. Development Workflow
Activate the Pixi environment:
```bash
pixi shell
```
Then, for development:
- Run tests: `pixi run test`
- Run linting: `ruff check .`
- Perform editable install: `pip install --no-deps -e .`
This ensures your environment remains clean and all tasks are reproducible.
## Project Overview
- ๐ฆ **Unified packaging** for both PyPI and Conda via [`pixi build`](https://prefix.dev/docs/pixi/pixi-build/)
- ๐ **Python 3.11+** compatibility
- โ๏ธ **Versioning** handled by [`versioningit`](https://github.com/jwodder/versioningit), derived from Git tags
- ๐งช **Testing** with `pytest` and code coverage reporting
- ๐งผ **Linting & formatting** with [`ruff`](https://docs.astral.sh/ruff/)
- ๐ **Task automation** via `pixi run`
- ๐ Supports CLI and optional GUI through modular structure in `src/packagenamepy/`
## Codebase Adjustments
1. Adjust the branch protection rules for the new repo. By default, we should protect the `main` (stable), `qa` (release candidate), and `next` (development) branches.
1.1 Go to the `Settings` tab of the new repo.
1.2 Click on `Branches` on the left side.
1.3 Click on `Add rule` button.
1.4 Follow the instructions from Github.
1. Change the License if MIT license is not suitable for you project. For more information about licenses, please
refer to [Choose an open source license](https://choosealicense.com/).
1. Adjust pre-commit configuration file, `.pre-commit-config.yaml` to enable/disable the hooks you need. For more information about pre-commit, please refer to [pre-commit](https://pre-commit.com/).
1. Having code coverage, `codecov.yaml` is **strongly recommended**, please refer to [Code coverage](https://coverage.readthedocs.io/en/coverage-5.5/) for more information.
1. Adjust the GitHub Actions workflows for CI/CD to align with Pixi-only packaging. For more information about GitHub Actions, please refer to [GitHub Actions](https://docs.github.com/en/actions).
- Ensure that `.github/workflows/package.yaml` uses only `pixi run` commands for all build and publish steps.
- Validate that the following Pixi tasks are correctly invoked:
- `pixi run pypi-build`
- `pixi run pypi-publish`
- `pixi run conda-build`
- `pixi run conda-publish`
- Remove or disable any steps using `conda-build`, `python setup.py`, or `pip install .`.
1. The legacy `conda.recipe/meta.yaml` is no longer needed since Conda packaging is now handled via Pixi and `pyproject.toml`.
- You may delete the `conda.recipe` folder entirely, unless it's still needed for backward compatibility with older workflows.
1. Adjust `pyproject.toml` to match your project. For more information about `pyproject.toml`,
please refer to [pyproject.toml](https://www.python.org/dev/peps/pep-0518/).
- Specify package name at: pyproject.toml#L5
- Specify package description at: pyproject.toml#L6
- Specify any terminal entry points (terminal commands) at: pyproject.toml#30.
1. Adjust files for pixi
- After updating your environment file, make sure to run `pixi install` and commit the updated lock file.
- Specify package name at: pyproject.toml#L65
> In the example, invoking `packagename-cli` in a terminal is equivalent to running the python script `from packagenamepy.packagename import main; main()`
- Projects will use a single `pyproject.toml` file to manage all the project metadata, including the project name, version, author, license, etc.
- Python has moved away from `setup.cfg`/`setup.py`, and we would like to follow the trend for our new projects.
1. Specify package name at src/packagenamepy
1. Specify package name at: src/packagenamepy/packagename.py
1. If a GUI isn't used, delete the MVP structure at src/packagenamepy:
- mainwindow.py
- home/
- help/
1. Clear the content of this file and add your own README.md as the project README file.
We recommend putting badges of the project status at the top of the README file.
For more information about badges, please refer to [shields.io](https://shields.io/).
## Repository Adjustments
### Add an access token to anaconda
Here we assume your intent is to upload the conda package to the [anaconda.org/neutrons](https://anaconda.org/neutrons) organization.
An administrator of `anaconda.org/neutrons` must create an access token for your repository in the [access settings](https://anaconda.org/neutrons/settings/access).
After created, the token must be stored in a `repository secret`:
1. Navigate to the main page of the repository on GitHub.com.
1. Click on the "Settings" tab.
1. In the left sidebar, navigate to the "Security" section and select "Secrets and variables" followed by "Actions".
1. Click on the "New repository secret" button.
1. Enter `ANACONDA_TOKEN` for the secret name
1. Paste the Anaconda access token
1. Click on the "Add secret" button
1. Test the setup by creating a release candidate tag,
which will result in a package built and uploaded to `https://anaconda.org/neutrons/mypackagename`
### Add an access token to codecov
Follow the instructions in the [Confluence page](https://ornl-neutrons.atlassian.net/wiki/spaces/NDPD/pages/103546883/Coverage+reports)
to create the access token.
## Build & Publish Packages
Both PyPI and Conda packages are supported. All build and publishing steps are defined in Pixi tasks.
Note that if your project is not being built and published to PyPI, you can safely modify the `pyproject.toml`
to remove any pixi tasks related to PyPI, and the `hatch` dependency.
Similarly, if you are not publishing to conda, you can remove any related dependencies, configurations, and tasks.
### Publish to PyPI
1. Ensure you have access to the project on PyPI.
2. Clean working directory: `git status` should be clean.
3. Run the Pixi task to build the wheel:
```bash
pixi run pypi-build
```
4. Check the wheel for issues manually:
```bash
twine check dist/*
```
5. Upload to TestPyPI:
```bash
pixi run pypi-publish-test
```
Ensure your `~/.pypirc` contains the correct token:
```ini
[distutils]
index-servers = pypi testpypi
[testpypi]
repository = https://test.pypi.org/legacy/
username = __token__
password = YOUR_TESTPYPI_TOKEN
```
6. Install from TestPyPI to verify:
```bash
pip install --index-url https://test.pypi.org/simple/ examplepyapp
```
7. When ready, trigger the GitHub Action (`package.yaml`) to upload to PyPI.
### Publish to Anaconda (Conda)
1. Ensure the target channel is correct in `.github/workflows/package.yaml`.
2. Run the Pixi build:
```bash
pixi run conda-build
```
This creates a `.conda` package in the project root.
3. Publish using:
```bash
pixi run conda-publish
```
Ensure the `ANACONDA_TOKEN` secret is configured in GitHub for CI/CD to work.
## Development environment setup
### Build development environment
1. By default, we recommend using `pixi install` to set up the development environment.
This will create a virtual environment in the `.pixi` directory at the root of the repository.
1. If you prefer to use a detached environment, set the `detached-environments` option to `true` in `.pixi/config.toml`:
```bash
pixi config set detached-environments true
```
1. If you want to keep your environment between sessions, add the following line to your `.bashrc` or `.bash_profile`:
```bash
export PIXI_CACHE_DIR="$HOME/.pixi/cache"
```
1. After setting up the environment, you can activate it with:
```bash
pixi shell
```
1. If you are using VSCode as your IDE, we recommend to start code with `pixi run code .` to ensure the correct environment is inherited by the IDE.
Alternatively, you can specify the Python interpreter path using `Ctrl + Shift + P` and searching for "Python: Select Interpreter",
or manually editing the `.vscode/settings.json` file to set the Python interpreter path:
```json
{
"python.pythonPath": ".pixi/venv/bin/python"
}
```
### Auditing dependencies
The tool [`pip-audit`](https://github.com/pypa/pip-audit) allows for checking dependencies for versions with known weaknesses or vulnerabilities as registered in [open source vulnerabilities database (osv)](https://osv.dev/).
This is provided as the task `audit-deps` which will verify that there are no known python dependencies in the pixi environment.
**Finding source of issue:** This is an outdated example used to demonstrate how to suppress vulnerabilities.
Assume that `pixi run audit-deps` returns a message that there is a issue [PYSEC-2025-61](https://osv.dev/vulnerability/PYSEC-2025-61) that is associated with pillow v11.2.0.
Since this is an indirect dependency, one can use
```bash
$ pixi tree --invert pillow
pillow 11.2.0
โโโ anaconda-client 1.13.0
```
to find out that this is included by the anaconda-client package which is also not a runtime dependency.
This can be ignored.
**Ignoring a vulnerability:** Unfortunately, `pip-audit` does not have a configuration file that allows for ignoring issues.
This is done with a suppression in the `pyproject.toml` by modifying the task.
```
# ignore pillow error because it is only used by anaconda-client v1.13.0
audit-deps = { cmd = "pip-audit --local -s osv --ignore-vuln=PYSEC-2025-61" }
```
The comment is added to save future developers effort in confirming the issue.
At a later date, the team should periodically remove the suppression and confirm the issue persists or remove the suppression permanently.
## Pixi
Pixi is the single tool used to manage environments, dependencies, packaging, and task execution for this project.
All metadata is centralized in `pyproject.toml`, eliminating the need for `environment.yml` or `meta.yaml`.
### How to use Pixi
1. Install `pixi` by running `curl -fsSL https://pixi.sh/install.sh | bash`
(or following the instruction on the [official website](https://pixi.sh/))
2. Run `pixi install` to create the virtual environments.
By default, `pixi` creates a virtual environment in the `.pixi` directory at the root of the repository.
3. Run `pixi shell` to start a shell with an activate environment, and type `exit` to exit the shell.
Adjust the tasks in `pyproject.toml` to match your project's needs.
Detailed instructions on adding tasks can be found in the [official documentation](https://pixi.sh/latest/features/tasks/).
You can use `pixi task list` to see available tasks and their descriptions.
```bash
$> pixi task list
Tasks that can run on this machine:
-----------------------------------
Task Description
audit-deps Audit the package dependencies for vulnerabilities
build-docs Build documentation
conda-build Build the conda package
pypi-build Build the package for PyPI
test Run the test suite
```
Use `pixi run <task-name>` to run a specific task (note: if the selected task has dependencies, they will be run first).
You don't need to run `pixi shell` to run tasks, as `pixi run` will automatically activate the environment for you.
## Activating the Environment Automatically
Install [direnv](https://pixi.sh/latest/integration/third_party/direnv/)
and create a file `.envrc` in the project root directory with the following content:
```bash
watch_file pixi.lock
eval "$(pixi shell-hook)"
unset PS1
```
- The line watch_file pixi.lock directs direnv to re-evaluate the environment whenever the file `pixi.lock `changes.
- The line `unset PS1` prevents direnv from reporting on a nagging, albeit harmless, error message.
Then in the terminal, run `direnv allow`.
Now direnv activates the environment when you enter the project directory,
and deactivates it when you leave the directory.
### Known issues
On SNS Analysis systems, the `pixi run conda-build` task will fail due to `sqlite3` file locking issue.
This is most likely due to the user directory being a shared mount,
which interferes with `pixi` and `conda` environment locking.
Raw data
{
"_id": null,
"home_page": null,
"name": "timepix-geometry-correction",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "correction, geometry, neutrons, timepix",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/9a/16/a490adbf6861606ccafa45fd21b61d81189c432f84f0e65e39323da22a20/timepix_geometry_correction-0.2.0.dev5.tar.gz",
"platform": null,
"description": "[](https://results.pre-commit.ci/latest/github/ornlneutronimaging/timepix_geometry_correction/main)\n\n# Python Project Template (examplepyapp)\n\nThis repository contains a modern Python project managed entirely with [Pixi](https://pixi.sh/), a reproducible and declarative environment manager.\nAll build and packaging metadata is consolidated in a single `pyproject.toml` file, following modern Python packaging standards.\n\n## Getting Started\n\nThis project uses [Pixi](https://pixi.sh/) as the single tool for managing environments, dependencies, packaging, and task execution.\n\n### 1. Install Pixi\n\nFollow the installation instructions from the [Pixi website](https://pixi.sh/), or use:\n\n```bash\ncurl -fsSL https://pixi.sh/install.sh | bash\n```\n\n### 2. Set Up the Environment\n\nRun the following command to create and activate the project environment with all dependencies:\n\n```bash\npixi install\n```\n\n### 3. Explore Available Tasks\n\nUse the following command to list all project-defined tasks:\n\n```bash\npixi run\n```\n\nExample tasks:\n\n- `build-pypi`: build the PyPI wheel\n- `build-conda`: build the Conda package\n- `test`: run the test suite\n- `conda-publish`, `pypi-publish`: publish the built artifacts\n- `clean-*`: clean build artifacts\n\n### 4. Development Workflow\n\nActivate the Pixi environment:\n\n```bash\npixi shell\n```\n\nThen, for development:\n\n- Run tests: `pixi run test`\n- Run linting: `ruff check .`\n- Perform editable install: `pip install --no-deps -e .`\n\nThis ensures your environment remains clean and all tasks are reproducible.\n\n## Project Overview\n\n- \ud83d\udce6 **Unified packaging** for both PyPI and Conda via [`pixi build`](https://prefix.dev/docs/pixi/pixi-build/)\n- \ud83d\udc0d **Python 3.11+** compatibility\n- \u2699\ufe0f **Versioning** handled by [`versioningit`](https://github.com/jwodder/versioningit), derived from Git tags\n- \ud83e\uddea **Testing** with `pytest` and code coverage reporting\n- \ud83e\uddfc **Linting & formatting** with [`ruff`](https://docs.astral.sh/ruff/)\n- \ud83d\ude80 **Task automation** via `pixi run`\n- \ud83d\udd01 Supports CLI and optional GUI through modular structure in `src/packagenamepy/`\n\n## Codebase Adjustments\n\n1. Adjust the branch protection rules for the new repo. By default, we should protect the `main` (stable), `qa` (release candidate), and `next` (development) branches.\n\n 1.1 Go to the `Settings` tab of the new repo.\n\n 1.2 Click on `Branches` on the left side.\n\n 1.3 Click on `Add rule` button.\n\n 1.4 Follow the instructions from Github.\n\n1. Change the License if MIT license is not suitable for you project. For more information about licenses, please\n refer to [Choose an open source license](https://choosealicense.com/).\n\n1. Adjust pre-commit configuration file, `.pre-commit-config.yaml` to enable/disable the hooks you need. For more information about pre-commit, please refer to [pre-commit](https://pre-commit.com/).\n\n1. Having code coverage, `codecov.yaml` is **strongly recommended**, please refer to [Code coverage](https://coverage.readthedocs.io/en/coverage-5.5/) for more information.\n\n1. Adjust the GitHub Actions workflows for CI/CD to align with Pixi-only packaging. For more information about GitHub Actions, please refer to [GitHub Actions](https://docs.github.com/en/actions).\n\n - Ensure that `.github/workflows/package.yaml` uses only `pixi run` commands for all build and publish steps.\n\n - Validate that the following Pixi tasks are correctly invoked:\n\n - `pixi run pypi-build`\n - `pixi run pypi-publish`\n - `pixi run conda-build`\n - `pixi run conda-publish`\n\n - Remove or disable any steps using `conda-build`, `python setup.py`, or `pip install .`.\n\n1. The legacy `conda.recipe/meta.yaml` is no longer needed since Conda packaging is now handled via Pixi and `pyproject.toml`.\n\n - You may delete the `conda.recipe` folder entirely, unless it's still needed for backward compatibility with older workflows.\n\n1. Adjust `pyproject.toml` to match your project. For more information about `pyproject.toml`,\n please refer to [pyproject.toml](https://www.python.org/dev/peps/pep-0518/).\n\n - Specify package name at: pyproject.toml#L5\n\n - Specify package description at: pyproject.toml#L6\n\n - Specify any terminal entry points (terminal commands) at: pyproject.toml#30.\n\n1. Adjust files for pixi\n\n - After updating your environment file, make sure to run `pixi install` and commit the updated lock file.\n\n - Specify package name at: pyproject.toml#L65\n\n > In the example, invoking `packagename-cli` in a terminal is equivalent to running the python script `from packagenamepy.packagename import main; main()`\n\n - Projects will use a single `pyproject.toml` file to manage all the project metadata, including the project name, version, author, license, etc.\n\n - Python has moved away from `setup.cfg`/`setup.py`, and we would like to follow the trend for our new projects.\n\n1. Specify package name at src/packagenamepy\n\n1. Specify package name at: src/packagenamepy/packagename.py\n\n1. If a GUI isn't used, delete the MVP structure at src/packagenamepy:\n\n - mainwindow.py\n - home/\n - help/\n\n1. Clear the content of this file and add your own README.md as the project README file.\n We recommend putting badges of the project status at the top of the README file.\n For more information about badges, please refer to [shields.io](https://shields.io/).\n\n## Repository Adjustments\n\n### Add an access token to anaconda\n\nHere we assume your intent is to upload the conda package to the [anaconda.org/neutrons](https://anaconda.org/neutrons) organization.\nAn administrator of `anaconda.org/neutrons` must create an access token for your repository in the [access settings](https://anaconda.org/neutrons/settings/access).\n\nAfter created, the token must be stored in a `repository secret`:\n\n1. Navigate to the main page of the repository on GitHub.com.\n1. Click on the \"Settings\" tab.\n1. In the left sidebar, navigate to the \"Security\" section and select \"Secrets and variables\" followed by \"Actions\".\n1. Click on the \"New repository secret\" button.\n1. Enter `ANACONDA_TOKEN` for the secret name\n1. Paste the Anaconda access token\n1. Click on the \"Add secret\" button\n1. Test the setup by creating a release candidate tag,\n which will result in a package built and uploaded to `https://anaconda.org/neutrons/mypackagename`\n\n### Add an access token to codecov\n\nFollow the instructions in the [Confluence page](https://ornl-neutrons.atlassian.net/wiki/spaces/NDPD/pages/103546883/Coverage+reports)\nto create the access token.\n\n## Build & Publish Packages\n\nBoth PyPI and Conda packages are supported. All build and publishing steps are defined in Pixi tasks.\n\nNote that if your project is not being built and published to PyPI, you can safely modify the `pyproject.toml`\nto remove any pixi tasks related to PyPI, and the `hatch` dependency.\n\nSimilarly, if you are not publishing to conda, you can remove any related dependencies, configurations, and tasks.\n\n### Publish to PyPI\n\n1. Ensure you have access to the project on PyPI.\n2. Clean working directory: `git status` should be clean.\n3. Run the Pixi task to build the wheel:\n\n ```bash\n pixi run pypi-build\n ```\n\n4. Check the wheel for issues manually:\n\n ```bash\n twine check dist/*\n ```\n\n5. Upload to TestPyPI:\n\n ```bash\n pixi run pypi-publish-test\n ```\n\n Ensure your `~/.pypirc` contains the correct token:\n\n ```ini\n [distutils]\n index-servers = pypi testpypi\n\n [testpypi]\n repository = https://test.pypi.org/legacy/\n username = __token__\n password = YOUR_TESTPYPI_TOKEN\n ```\n\n6. Install from TestPyPI to verify:\n\n ```bash\n pip install --index-url https://test.pypi.org/simple/ examplepyapp\n ```\n\n7. When ready, trigger the GitHub Action (`package.yaml`) to upload to PyPI.\n\n### Publish to Anaconda (Conda)\n\n1. Ensure the target channel is correct in `.github/workflows/package.yaml`.\n2. Run the Pixi build:\n\n ```bash\n pixi run conda-build\n ```\n\n This creates a `.conda` package in the project root.\n\n3. Publish using:\n\n ```bash\n pixi run conda-publish\n ```\n\n Ensure the `ANACONDA_TOKEN` secret is configured in GitHub for CI/CD to work.\n\n## Development environment setup\n\n### Build development environment\n\n1. By default, we recommend using `pixi install` to set up the development environment.\n This will create a virtual environment in the `.pixi` directory at the root of the repository.\n1. If you prefer to use a detached environment, set the `detached-environments` option to `true` in `.pixi/config.toml`:\n\n ```bash\n pixi config set detached-environments true\n ```\n\n1. If you want to keep your environment between sessions, add the following line to your `.bashrc` or `.bash_profile`:\n\n ```bash\n export PIXI_CACHE_DIR=\"$HOME/.pixi/cache\"\n ```\n\n1. After setting up the environment, you can activate it with:\n\n ```bash\n pixi shell\n ```\n\n1. If you are using VSCode as your IDE, we recommend to start code with `pixi run code .` to ensure the correct environment is inherited by the IDE.\n Alternatively, you can specify the Python interpreter path using `Ctrl + Shift + P` and searching for \"Python: Select Interpreter\",\n or manually editing the `.vscode/settings.json` file to set the Python interpreter path:\n\n ```json\n {\n \"python.pythonPath\": \".pixi/venv/bin/python\"\n }\n ```\n\n### Auditing dependencies\n\nThe tool [`pip-audit`](https://github.com/pypa/pip-audit) allows for checking dependencies for versions with known weaknesses or vulnerabilities as registered in [open source vulnerabilities database (osv)](https://osv.dev/).\nThis is provided as the task `audit-deps` which will verify that there are no known python dependencies in the pixi environment.\n\n**Finding source of issue:** This is an outdated example used to demonstrate how to suppress vulnerabilities.\nAssume that `pixi run audit-deps` returns a message that there is a issue [PYSEC-2025-61](https://osv.dev/vulnerability/PYSEC-2025-61) that is associated with pillow v11.2.0.\nSince this is an indirect dependency, one can use\n\n```bash\n$ pixi tree --invert pillow\n\n pillow 11.2.0\n \u2514\u2500\u2500 anaconda-client 1.13.0\n```\n\nto find out that this is included by the anaconda-client package which is also not a runtime dependency.\nThis can be ignored.\n\n**Ignoring a vulnerability:** Unfortunately, `pip-audit` does not have a configuration file that allows for ignoring issues.\nThis is done with a suppression in the `pyproject.toml` by modifying the task.\n\n```\n# ignore pillow error because it is only used by anaconda-client v1.13.0\naudit-deps = { cmd = \"pip-audit --local -s osv --ignore-vuln=PYSEC-2025-61\" }\n```\n\nThe comment is added to save future developers effort in confirming the issue.\nAt a later date, the team should periodically remove the suppression and confirm the issue persists or remove the suppression permanently.\n\n## Pixi\n\nPixi is the single tool used to manage environments, dependencies, packaging, and task execution for this project.\nAll metadata is centralized in `pyproject.toml`, eliminating the need for `environment.yml` or `meta.yaml`.\n\n### How to use Pixi\n\n1. Install `pixi` by running `curl -fsSL https://pixi.sh/install.sh | bash`\n (or following the instruction on the [official website](https://pixi.sh/))\n2. Run `pixi install` to create the virtual environments.\n By default, `pixi` creates a virtual environment in the `.pixi` directory at the root of the repository.\n3. Run `pixi shell` to start a shell with an activate environment, and type `exit` to exit the shell.\n\nAdjust the tasks in `pyproject.toml` to match your project's needs.\nDetailed instructions on adding tasks can be found in the [official documentation](https://pixi.sh/latest/features/tasks/).\n\nYou can use `pixi task list` to see available tasks and their descriptions.\n\n```bash\n$> pixi task list\nTasks that can run on this machine:\n-----------------------------------\nTask Description\naudit-deps Audit the package dependencies for vulnerabilities\nbuild-docs Build documentation\nconda-build Build the conda package\npypi-build Build the package for PyPI\ntest Run the test suite\n```\n\nUse `pixi run <task-name>` to run a specific task (note: if the selected task has dependencies, they will be run first).\nYou don't need to run `pixi shell` to run tasks, as `pixi run` will automatically activate the environment for you.\n\n## Activating the Environment Automatically\n\nInstall [direnv](https://pixi.sh/latest/integration/third_party/direnv/)\nand create a file `.envrc` in the project root directory with the following content:\n\n```bash\nwatch_file pixi.lock\neval \"$(pixi shell-hook)\"\nunset PS1\n```\n\n- The line watch_file pixi.lock directs direnv to re-evaluate the environment whenever the file `pixi.lock `changes.\n- The line `unset PS1` prevents direnv from reporting on a nagging, albeit harmless, error message.\n\nThen in the terminal, run `direnv allow`.\nNow direnv activates the environment when you enter the project directory,\nand deactivates it when you leave the directory.\n\n\n### Known issues\n\nOn SNS Analysis systems, the `pixi run conda-build` task will fail due to `sqlite3` file locking issue.\nThis is most likely due to the user directory being a shared mount,\nwhich interferes with `pixi` and `conda` environment locking.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Program to realign the timepix1 and 3 chips",
"version": "0.2.0.dev5",
"project_urls": {
"homepage": "https://github.com/ornlneutronimaging/timepix_geometry_correction",
"issues": "https://github.com/ornlneutronimaging/timepix_geometry_correction/issues",
"repository": "https://github.com/ornlneutronimaging/timepix_geometry_correction"
},
"split_keywords": [
"correction",
" geometry",
" neutrons",
" timepix"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "27756a153d09d91963a86a64c4405c89aa700f9cbd8054cf08a4fac702bc0a51",
"md5": "6e09d9d1a6007231138f4195efc2b264",
"sha256": "70bb7a61aef957be06b659d5caf56822f6ed4a7249dd82055e340c9e4ed27209"
},
"downloads": -1,
"filename": "timepix_geometry_correction-0.2.0.dev5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6e09d9d1a6007231138f4195efc2b264",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 10653,
"upload_time": "2025-08-20T12:25:05",
"upload_time_iso_8601": "2025-08-20T12:25:05.886758Z",
"url": "https://files.pythonhosted.org/packages/27/75/6a153d09d91963a86a64c4405c89aa700f9cbd8054cf08a4fac702bc0a51/timepix_geometry_correction-0.2.0.dev5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9a16a490adbf6861606ccafa45fd21b61d81189c432f84f0e65e39323da22a20",
"md5": "0eaff9125f2b635c91135c76fbc42ddd",
"sha256": "96056328aec232c66830275576761f95d943ab2917e7c70728ea5a8a9e4b2345"
},
"downloads": -1,
"filename": "timepix_geometry_correction-0.2.0.dev5.tar.gz",
"has_sig": false,
"md5_digest": "0eaff9125f2b635c91135c76fbc42ddd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 4582596,
"upload_time": "2025-08-20T12:25:07",
"upload_time_iso_8601": "2025-08-20T12:25:07.404854Z",
"url": "https://files.pythonhosted.org/packages/9a/16/a490adbf6861606ccafa45fd21b61d81189c432f84f0e65e39323da22a20/timepix_geometry_correction-0.2.0.dev5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-20 12:25:07",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ornlneutronimaging",
"github_project": "timepix_geometry_correction",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "timepix-geometry-correction"
}