diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index d7eea9ff..29e16fe4 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -409,73 +409,3 @@ jobs: working-directory: ${{ env.WORKING_DIR }} if: matrix.project_type == 'application' run: python -m pytest - pixi-linting: - strategy: - fail-fast: false - matrix: - project_type: ["application", "lib"] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - - name: install Rust - uses: dtolnay/rust-toolchain@stable - - name: Cache Rust dependencies - uses: Swatinem/rust-cache@v2.8.2 - - name: Build package - run: cargo build --release - - name: Run creation - run: ./scripts/ci_run.sh ${{ matrix.project_type }} 5 - shell: bash - - name: Install Pixi - uses: prefix-dev/setup-pixi@v0.9.3 - with: - manifest-path: ${{ env.WORKING_DIR }}/pyproject.toml - pixi-version: v0.57.0 - - name: Set up Python - working-directory: ${{ env.WORKING_DIR }} - run: pixi add python=="${{ env.MIN_PYTHON_VERSION }}.*" - - name: MyPy - working-directory: ${{ env.WORKING_DIR }} - run: pixi run -e dev mypy . - - name: ruff check - working-directory: ${{ env.WORKING_DIR }} - run: pixi run -e dev ruff check . - - name: ruff format - working-directory: ${{ env.WORKING_DIR }} - run: pixi run -e dev ruff format --check . - pixi-test: - strategy: - fail-fast: false - matrix: - project_type: ["application", "lib"] - os: [ubuntu-latest, windows-latest] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v6 - - name: install Rust - uses: dtolnay/rust-toolchain@stable - - name: Cache Rust dependencies - uses: Swatinem/rust-cache@v2.8.2 - - name: Build package - run: cargo build --release - - name: Run creation - run: ./scripts/ci_run.sh ${{ matrix.project_type }} 5 - shell: bash - - name: Install Pixi - uses: prefix-dev/setup-pixi@v0.9.3 - with: - manifest-path: ${{ env.WORKING_DIR }}/pyproject.toml - pixi-version: v0.57.0 - - name: Set up Python - working-directory: ${{ env.WORKING_DIR }} - run: pixi add python=="${{ env.MIN_PYTHON_VERSION }}.*" - - name: Pre-commit check - working-directory: ${{ env.WORKING_DIR }} - run: | - pixi run -e dev pre-commit install - git add . - pixi run -e dev pre-commit run --all-files - - name: Test with pytest - working-directory: ${{ env.WORKING_DIR }} - if: matrix.project_type == 'application' - run: pixi run -e dev pytest diff --git a/README.md b/README.md index 051181e2..e057e22f 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,6 @@ For package management choose between: - [poetry](https://python-poetry.org/) - [setuptools](https://github.com/pypa/setuptools) - [uv](https://docs.astral.sh/uv/) -- [pixi](https://prefix.dev/) Dev packages: diff --git a/src/fastapi/docker_files.rs b/src/fastapi/docker_files.rs index f009ab62..032fdbbd 100644 --- a/src/fastapi/docker_files.rs +++ b/src/fastapi/docker_files.rs @@ -802,7 +802,6 @@ ENTRYPOINT ["./entrypoint.sh"] bail!("A PyO3 python manager is required for Maturin projects") } } - ProjectManager::Pixi => bail!("Pixi is not currently supported for FastAPI projects"), } } diff --git a/src/fastapi/fastapi_installer.rs b/src/fastapi/fastapi_installer.rs index 2caeb40c..41a94cdc 100644 --- a/src/fastapi/fastapi_installer.rs +++ b/src/fastapi/fastapi_installer.rs @@ -26,7 +26,6 @@ pub fn install_fastapi_dependencies(project_info: &ProjectInfo) -> Result<()> { ProjectManager::Uv => uv_fastapi_dependency_installer(project_info)?, ProjectManager::Poetry => poetry_fastapi_dependency_installer(project_info)?, ProjectManager::Setuptools => setuptools_fastapi_dependency_installer(project_info)?, - ProjectManager::Pixi => bail!("Pixi is not currently supported for FastAPI projects"), ProjectManager::Maturin => maturin_fastapi_dependency_installer(project_info)?, }; diff --git a/src/github_actions.rs b/src/github_actions.rs index 44007c3b..eb9660fc 100644 --- a/src/github_actions.rs +++ b/src/github_actions.rs @@ -474,59 +474,6 @@ jobs: ) } -fn create_pixi_ci_testing_linux_only_file( - min_python_version: &str, - github_action_python_test_versions: &[String], -) -> String { - let python_versions = build_actions_python_test_versions(github_action_python_test_versions); - - format!( - r#"name: Testing - -on: - push: - branches: - - main - pull_request: -env: - PYTHON_VERSION: "{min_python_version}" -jobs: - linting: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - name: Install Pixi - uses: prefix-dev/setup-pixi@v0.8.1 - with: - pixi-version: v0.30.0 - - name: Set up Python - run: pixi add python=="${{{{ env.PYTHON_VERSION }}}}.*" - - name: Ruff format check - run: pixi run run-ruff-format - - name: Lint with ruff - run: pixi run run-ruff-check - - name: mypy check - run: pixi run run-mypy - testing: - strategy: - fail-fast: false - matrix: - python-version: [{python_versions}] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - name: Install Pixi - uses: prefix-dev/setup-pixi@v0.8.1 - with: - pixi-version: v0.30.0 - - name: Set up Python ${{{{ matrix.python-version }}}} - run: pixi add python=="${{{{ matrix.python-version }}}}.*" - - name: Test with pytest - run: pixi run run-pytest -"# - ) -} - fn create_ci_testing_linux_only_file_pyo3( source_dir: &str, min_python_version: &str, @@ -1046,10 +993,6 @@ pub fn save_ci_testing_linux_only_file(project_info: &ProjectInfo) -> Result<()> &project_info.github_actions_python_test_versions, ) } - ProjectManager::Pixi => create_pixi_ci_testing_linux_only_file( - &project_info.min_python_version, - &project_info.github_actions_python_test_versions, - ), }; save_file_with_content(&file_path, &content)?; @@ -1434,60 +1377,6 @@ jobs: ) } -fn create_pixi_ci_testing_multi_os_file( - min_python_version: &str, - github_action_python_test_versions: &[String], -) -> String { - let python_versions = build_actions_python_test_versions(github_action_python_test_versions); - - format!( - r#"name: Testing - -on: - push: - branches: - - main - pull_request: -env: - PYTHON_VERSION: "{min_python_version}" -jobs: - linting: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - name: Install Pixi - uses: prefix-dev/setup-pixi@v0.8.1 - with: - pixi-version: v0.30.0 - - name: Set up Python - run: pixi add python=="${{{{ env.PYTHON_VERSION }}}}.*" - - name: Ruff format check - run: pixi run run-ruff-former - - name: Lint with ruff - run: pixi run run-ruff-check - - name: mypy check - run: pixi run run-mypy - testing: - strategy: - fail-fast: false - matrix: - python-version: [{python_versions}] - os: [ubuntu-latest, windows-latest, macos-latest] - runs-on: ${{{{ matrix.os }}}} - steps: - - uses: actions/checkout@v5 - - name: Install Pixi - uses: prefix-dev/setup-pixi@v0.8.1 - with: - pixi-version: v0.30.0 - - name: Set up Python ${{{{ matrix.python-version }}}} - run: pixi add python=="${{{{ matrix.python-version }}}}.*" - - name: Test with pytest - run: pixi run run-pytest -"# - ) -} - pub fn save_ci_testing_multi_os_file(project_info: &ProjectInfo) -> Result<()> { let file_path = project_info .base_dir() @@ -1520,10 +1409,6 @@ pub fn save_ci_testing_multi_os_file(project_info: &ProjectInfo) -> Result<()> { &project_info.min_python_version, &project_info.github_actions_python_test_versions, ), - ProjectManager::Pixi => create_pixi_ci_testing_multi_os_file( - &project_info.min_python_version, - &project_info.github_actions_python_test_versions, - ), }; save_file_with_content(&file_path, &content)?; @@ -1892,35 +1777,6 @@ jobs: ) } -fn create_pixi_pypi_publish_file(python_version: &str) -> String { - format!( - r#"name: PyPi Publish -on: - release: - types: - - published -jobs: - deploy: - runs-on: ubuntu-latest - permissions: - # For PyPI's trusted publishing. - id-token: write - steps: - - uses: actions/checkout@v5 - - name: Install Pixi - uses: prefix-dev/setup-pixi@v0.8.1 - with: - pixi-version: v0.30.0 - - name: Set up Python - run: pixi add python=="{python_version}.*" - - name: Build and publish package - run: | - pixi exec --spec python=="{python_version}.*" --spec python-build pyproject-build - pixi exec --spec python=="{python_version}.*" --spec twine twine upload dist/* -"# - ) -} - #[cfg(feature = "fastapi")] fn create_testing_deploy_file() -> String { r#"name: Deploy to Testing @@ -2094,7 +1950,6 @@ pub fn save_pypi_publish_file(project_info: &ProjectInfo) -> Result<()> { create_setuptools_pypi_publish_file(&project_info.python_version) } ProjectManager::Uv => create_uv_pypi_publish_file(&project_info.python_version), - ProjectManager::Pixi => create_pixi_pypi_publish_file(&project_info.python_version), }; save_file_with_content(&file_path, &content)?; @@ -2157,30 +2012,6 @@ jobs: ) } -fn create_pixi_docs_publish_file(python_version: &str) -> String { - format!( - r#"name: Docs Publish -on: - release: - types: - - published -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - name: Install Pixi - uses: prefix-dev/setup-pixi@v0.8.1 - with: - pixi-version: v0.30.0 - - name: Set up Python - run: pixi add python=="{python_version}.*" - - name: Deploy Docs - run pixi run run-deploy-docs -"# - ) -} - fn create_uv_docs_publish_file(python_version: &str) -> String { format!( r#"name: Docs Publish @@ -2233,7 +2064,6 @@ pub fn save_docs_publish_file(project_info: &ProjectInfo) -> Result<()> { create_setuptools_docs_publish_file(&project_info.python_version) } ProjectManager::Uv => create_uv_docs_publish_file(&project_info.python_version), - ProjectManager::Pixi => create_pixi_docs_publish_file(&project_info.python_version), }; save_file_with_content(&file_path, &content)?; @@ -2533,23 +2363,6 @@ mod tests { assert_yaml_snapshot!(content); } - #[test] - fn test_save_pixi_ci_testing_linux_only_file() { - let mut project_info = project_info_dummy(); - project_info.project_manager = ProjectManager::Pixi; - project_info.use_multi_os_ci = false; - let base = project_info.base_dir(); - create_dir_all(base.join(".github/workflows")).unwrap(); - let expected_file = base.join(".github/workflows/testing.yml"); - save_ci_testing_linux_only_file(&project_info).unwrap(); - - assert!(expected_file.is_file()); - - let content = std::fs::read_to_string(expected_file).unwrap(); - - assert_yaml_snapshot!(content); - } - #[test] fn test_save_poetry_ci_testing_multi_os_file() { let mut project_info = project_info_dummy(); @@ -2618,23 +2431,6 @@ mod tests { assert_yaml_snapshot!(content); } - #[test] - fn test_save_pixi_ci_testing_multi_os_file() { - let mut project_info = project_info_dummy(); - project_info.project_manager = ProjectManager::Pixi; - project_info.use_multi_os_ci = true; - let base = project_info.base_dir(); - create_dir_all(base.join(".github/workflows")).unwrap(); - let expected_file = base.join(".github/workflows/testing.yml"); - save_ci_testing_multi_os_file(&project_info).unwrap(); - - assert!(expected_file.is_file()); - - let content = std::fs::read_to_string(expected_file).unwrap(); - - assert_yaml_snapshot!(content); - } - #[test] fn test_save_dependabot_file() { let mut project_info = project_info_dummy(); @@ -2966,22 +2762,6 @@ mod tests { assert_yaml_snapshot!(content); } - #[test] - fn test_save_pypi_publish_file_pixi() { - let mut project_info = project_info_dummy(); - project_info.project_manager = ProjectManager::Pixi; - let base = project_info.base_dir(); - create_dir_all(base.join(".github/workflows")).unwrap(); - let expected_file = base.join(".github/workflows/pypi_publish.yml"); - save_pypi_publish_file(&project_info).unwrap(); - - assert!(expected_file.is_file()); - - let content = std::fs::read_to_string(expected_file).unwrap(); - - assert_yaml_snapshot!(content); - } - #[cfg(feature = "fastapi")] #[test] fn test_save_deploy_files() { @@ -3004,24 +2784,6 @@ mod tests { assert_yaml_snapshot!(production_content); } - #[test] - fn test_save_docs_publish_file_pixi() { - let mut project_info = project_info_dummy(); - project_info.project_manager = ProjectManager::Pixi; - project_info.include_docs = true; - project_info.docs_info = Some(docs_info_dummy()); - let base = project_info.base_dir(); - create_dir_all(base.join(".github/workflows")).unwrap(); - let expected_file = base.join(".github/workflows/docs_publish.yml"); - save_docs_publish_file(&project_info).unwrap(); - - assert!(expected_file.is_file()); - - let content = std::fs::read_to_string(expected_file).unwrap(); - - assert_yaml_snapshot!(content); - } - #[test] fn test_save_release_drafter_file() { let mut project_info = project_info_dummy(); diff --git a/src/project_generator.rs b/src/project_generator.rs index 639f1762..ecd6136f 100644 --- a/src/project_generator.rs +++ b/src/project_generator.rs @@ -132,9 +132,6 @@ target/ # Jupyter Notebook .ipynb_checkpoints -# pixi environments -.pixi - # IPython profile_default/ ipython_config.py @@ -320,7 +317,7 @@ fn build_latest_dev_dependencies(project_info: &ProjectInfo) -> Result { }) } - if let ProjectManager::Uv | ProjectManager::Pixi = project_info.project_manager { + if let ProjectManager::Uv = project_info.project_manager { version_string.push_str("[\n"); } @@ -355,7 +352,7 @@ fn build_latest_dev_dependencies(project_info: &ProjectInfo) -> Result { .push_str(&format!("{} = \"{}\"\n", package.package, package.version)); } } - ProjectManager::Uv | ProjectManager::Pixi => { + ProjectManager::Uv => { if package.package == PythonPackage::MyPy { version_string.push_str(&format!( " \"{}[faster-cache]=={}\",\n", @@ -441,10 +438,6 @@ fn build_latest_dev_dependencies(project_info: &ProjectInfo) -> Result { version_string.push(']'); Ok(version_string) } - ProjectManager::Pixi => { - version_string.push(']'); - Ok(version_string) - } ProjectManager::Maturin => { if let Some(pyo3_python_manager) = &project_info.pyo3_python_manager { match pyo3_python_manager { @@ -481,7 +474,6 @@ fn create_pyproject_toml(project_info: &ProjectInfo) -> Result { let license_text = license_str(&project_info.license); let dev_dependencies = build_latest_dev_dependencies(project_info)?; let max_line_length = &project_info.max_line_length; - let include_docs = project_info.include_docs; let mut pyproject = match &project_info.project_manager { ProjectManager::Maturin => { @@ -674,69 +666,6 @@ dev = {dev_dependencies} [tool.hatch.version] path = "{module}/_version.py" -"#, - )); - pyproject - } - ProjectManager::Pixi => { - let mut pyproject = format!( - r#"[build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" - -[project] -name = "{project_name}" -description = "{project_description}" -authors = [ - {{ name = "{creator}", email = "{creator_email}" }} -] -"# - ); - - if license != &LicenseType::NoLicense { - pyproject.push_str( - "license = { file = \"LICENSE\" } -", - ); - } - - pyproject.push_str(&format!( - r#"readme = "README.md" -requires-python = ">={min_python_version}" -dynamic = ["version"] -dependencies = [] - -[tool.pixi.project] -channels = ["conda-forge", "bioconda"] -platforms = ["linux-64", "osx-arm64", "osx-64", "win-64"] - -[tool.pixi.feature.dev.tasks] -run-mypy = "mypy {module} tests" -run-ruff-check = "ruff check {module} tests" -run-ruff-format = "ruff format {module} tests" -run-pytest = "pytest -x" -"#, - )); - - if include_docs { - pyproject.push_str( - "run-deploy-docs = \"mkdocs gh-deploy --force\" -", - ); - } - - pyproject.push_str(&format!( - r#" -[project.optional-dependencies] -dev = {dev_dependencies} - -[tool.pixi.environments] -default = {{features = [], solve-group = "default"}} -dev = {{features = ["dev"], solve-group = "default"}} - -[tool.hatch.version] -path = "{module}/_version.py" - "#, )); pyproject @@ -1428,36 +1357,6 @@ granian_cmd := if os() != "windows" { justfile } -fn create_pixi_justfile() -> String { - (r#"@_default: - just --list - -@lint: - echo mypy - just --justfile {{{{justfile()}}}} mypy - echo ruff-check - just --justfile {{{{justfile()}}}} ruff-check - echo ruff-format - just --justfile {{{{justfile()}}}} ruff-format - -@mypy: - pixi run run-mypy - -@ruff-check: - pixi run run-ruff-check - -@ruff-format: - pixi run run-ruff-format - -@test: - pixi run run-pytest - -@install: - pixi install -"#) - .to_string() -} - fn save_justfile(project_info: &ProjectInfo) -> Result<()> { let file_path = project_info.base_dir().join("justfile"); let content = match &project_info.project_manager { @@ -1465,7 +1364,6 @@ fn save_justfile(project_info: &ProjectInfo) -> Result<()> { ProjectManager::Maturin => create_pyo3_justfile(project_info)?, ProjectManager::Setuptools => create_setuptools_justfile(project_info), ProjectManager::Uv => create_uv_justfile(project_info), - ProjectManager::Pixi => create_pixi_justfile(), }; save_file_with_content(&file_path, &content)?; @@ -2040,90 +1938,6 @@ mod tests { ]}, { assert_yaml_snapshot!(content)}); } - #[test] - fn test_save_pixi_pyproject_toml_file_mit_application() { - let mut project_info = project_info_dummy(); - project_info.license = LicenseType::Mit; - project_info.project_manager = ProjectManager::Pixi; - project_info.is_application = true; - let base = project_info.base_dir(); - create_dir_all(&base).unwrap(); - let expected_file = base.join("pyproject.toml"); - save_pyproject_toml_file(&project_info).unwrap(); - - assert!(expected_file.is_file()); - - let content = std::fs::read_to_string(expected_file).unwrap(); - - insta::with_settings!({filters => vec![ - (r"==\d+\.\d+\.\d+", "==1.0.0"), - (r">=\d+\.\d+\.\d+", ">=1.0.0"), - ]}, { assert_yaml_snapshot!(content)}); - } - - #[test] - fn test_save_pixi_pyproject_toml_file_apache_application() { - let mut project_info = project_info_dummy(); - project_info.license = LicenseType::Apache2; - project_info.project_manager = ProjectManager::Pixi; - project_info.is_application = true; - let base = project_info.base_dir(); - create_dir_all(&base).unwrap(); - let expected_file = base.join("pyproject.toml"); - save_pyproject_toml_file(&project_info).unwrap(); - - assert!(expected_file.is_file()); - - let content = std::fs::read_to_string(expected_file).unwrap(); - - insta::with_settings!({filters => vec![ - (r"==\d+\.\d+\.\d+", "==1.0.0"), - (r">=\d+\.\d+\.\d+", ">=1.0.0"), - ]}, { assert_yaml_snapshot!(content)}); - } - - #[test] - fn test_save_pixi_pyproject_toml_file_no_license_application() { - let mut project_info = project_info_dummy(); - project_info.license = LicenseType::NoLicense; - project_info.project_manager = ProjectManager::Pixi; - project_info.is_application = true; - let base = project_info.base_dir(); - create_dir_all(&base).unwrap(); - let expected_file = base.join("pyproject.toml"); - save_pyproject_toml_file(&project_info).unwrap(); - - assert!(expected_file.is_file()); - - let content = std::fs::read_to_string(expected_file).unwrap(); - - insta::with_settings!({filters => vec![ - (r"==\d+\.\d+\.\d+", "==1.0.0"), - (r">=\d+\.\d+\.\d+", ">=1.0.0"), - ]}, { assert_yaml_snapshot!(content)}); - } - - #[test] - fn test_create_pixi_pyproject_toml_mit_lib() { - let mut project_info = project_info_dummy(); - project_info.license = LicenseType::Mit; - project_info.project_manager = ProjectManager::Pixi; - project_info.is_application = false; - let base = project_info.base_dir(); - create_dir_all(&base).unwrap(); - let expected_file = base.join("pyproject.toml"); - save_pyproject_toml_file(&project_info).unwrap(); - - assert!(expected_file.is_file()); - - let content = std::fs::read_to_string(expected_file).unwrap(); - - insta::with_settings!({filters => vec![ - (r"==\d+\.\d+\.\d+", "==1.0.0"), - (r">=\d+\.\d+\.\d+", ">=1.0.0"), - ]}, { assert_yaml_snapshot!(content)}); - } - #[test] fn test_create_pyproject_toml_async_project() { let mut project_info = project_info_dummy(); diff --git a/src/project_info.rs b/src/project_info.rs index 80497016..d207ccf9 100644 --- a/src/project_info.rs +++ b/src/project_info.rs @@ -99,7 +99,6 @@ pub enum ProjectManager { Setuptools, #[default] Uv, - Pixi, } impl fmt::Display for ProjectManager { @@ -109,7 +108,6 @@ impl fmt::Display for ProjectManager { Self::Poetry => write!(f, "Poetry"), Self::Setuptools => write!(f, "Setuptools"), Self::Uv => write!(f, "uv"), - Self::Pixi => write!(f, "Pixi"), } } } @@ -404,12 +402,11 @@ fn project_manager_prompt(default: Option) -> Result "2".to_string(), ProjectManager::Maturin => "3".to_string(), ProjectManager::Setuptools => "4".to_string(), - ProjectManager::Pixi => "5".to_string(), }, None => "poetry".to_string(), }; let prompt_text = - "Project Manager\n 1 - uv\n 2 - Poetry\n 3 - Maturin\n 4 - setuptools\n 5 - Pixi\n Choose from [1, 2, 3, 4, 5]" + "Project Manager\n 1 - uv\n 2 - Poetry\n 3 - Maturin\n 4 - setuptools\n Choose from [1, 2, 3, 4, 5]" .to_string(); let prompt = Prompt { prompt_text, @@ -425,8 +422,6 @@ fn project_manager_prompt(default: Option) -> Result Result { project_manager_prompt(Some(default))? }; - #[cfg(feature = "fastapi")] - if is_fastapi_project && project_manager == ProjectManager::Pixi { - bail!("Pixi is not currently supported for FastAPI projects"); - } - let pyo3_python_manager = if project_manager == ProjectManager::Maturin { if use_defaults { if let Some(default) = config.pyo3_python_manager { diff --git a/src/python_files.rs b/src/python_files.rs index 73790e31..d4d878e2 100644 --- a/src/python_files.rs +++ b/src/python_files.rs @@ -634,16 +634,4 @@ mod tests { assert!(!expected_file.is_file()); } - - #[test] - fn test_save_version_test_file_pixi() { - let mut project_info = project_info_dummy(); - project_info.project_manager = ProjectManager::Pixi; - let base = project_info.base_dir(); - create_dir_all(base.join("tests")).unwrap(); - let expected_file = base.join("tests/test_version.py"); - save_version_test_file(&project_info).unwrap(); - - assert!(!expected_file.is_file()); - } } diff --git a/src/snapshots/python_project__project_generator__tests__save_gitigngore_file.snap b/src/snapshots/python_project__project_generator__tests__save_gitigngore_file.snap index 67f51911..87dcabb7 100644 --- a/src/snapshots/python_project__project_generator__tests__save_gitigngore_file.snap +++ b/src/snapshots/python_project__project_generator__tests__save_gitigngore_file.snap @@ -2,4 +2,4 @@ source: src/project_generator.rs expression: content --- -"\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# OS Files\n*.swp\n*.DS_Store\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\npip-wheel-metadata/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n# Usually these files are written by a python script from a template\n# before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# pixi environments\n.pixi\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n.python-version\n\n# pipenv\n# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n# However, in case of collaboration, if having platform-specific dependencies or dependencies\n# having no cross-platform support, pipenv may install dependencies that don't work, or not\n# install all needed dependencies.\n#Pipfile.lock\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# editors\n.idea\n.vscode\n" +"\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# OS Files\n*.swp\n*.DS_Store\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\npip-wheel-metadata/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n# Usually these files are written by a python script from a template\n# before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n.python-version\n\n# pipenv\n# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n# However, in case of collaboration, if having platform-specific dependencies or dependencies\n# having no cross-platform support, pipenv may install dependencies that don't work, or not\n# install all needed dependencies.\n#Pipfile.lock\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# editors\n.idea\n.vscode\n" diff --git a/src/snapshots/python_project__project_generator__tests__save_gitigngore_pyo3_file.snap b/src/snapshots/python_project__project_generator__tests__save_gitigngore_pyo3_file.snap index ea4c8904..4b2fc087 100644 --- a/src/snapshots/python_project__project_generator__tests__save_gitigngore_pyo3_file.snap +++ b/src/snapshots/python_project__project_generator__tests__save_gitigngore_pyo3_file.snap @@ -2,4 +2,4 @@ source: src/project_generator.rs expression: content --- -"\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# OS Files\n*.swp\n*.DS_Store\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\npip-wheel-metadata/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n# Usually these files are written by a python script from a template\n# before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# pixi environments\n.pixi\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n.python-version\n\n# pipenv\n# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n# However, in case of collaboration, if having platform-specific dependencies or dependencies\n# having no cross-platform support, pipenv may install dependencies that don't work, or not\n# install all needed dependencies.\n#Pipfile.lock\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# editors\n.idea\n.vscode\n\n# Rust\n/target\n" +"\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# OS Files\n*.swp\n*.DS_Store\n\n# C extensions\n*.so\n\n# Distribution / packaging\n.Python\nbuild/\ndevelop-eggs/\ndist/\ndownloads/\neggs/\n.eggs/\nlib/\nlib64/\nparts/\nsdist/\nvar/\nwheels/\npip-wheel-metadata/\nshare/python-wheels/\n*.egg-info/\n.installed.cfg\n*.egg\nMANIFEST\n\n# PyInstaller\n# Usually these files are written by a python script from a template\n# before PyInstaller builds the exe, so as to inject date/other infos into it.\n*.manifest\n*.spec\n\n# Installer logs\npip-log.txt\npip-delete-this-directory.txt\n\n# Unit test / coverage reports\nhtmlcov/\n.tox/\n.nox/\n.coverage\n.coverage.*\n.cache\nnosetests.xml\ncoverage.xml\n*.cover\n*.py,cover\n.hypothesis/\n.pytest_cache/\n\n# Translations\n*.mo\n*.pot\n\n# Django stuff:\n*.log\nlocal_settings.py\ndb.sqlite3\ndb.sqlite3-journal\n\n# Flask stuff:\ninstance/\n.webassets-cache\n\n# Scrapy stuff:\n.scrapy\n\n# Sphinx documentation\ndocs/_build/\n\n# PyBuilder\ntarget/\n\n# Jupyter Notebook\n.ipynb_checkpoints\n\n# IPython\nprofile_default/\nipython_config.py\n\n# pyenv\n.python-version\n\n# pipenv\n# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.\n# However, in case of collaboration, if having platform-specific dependencies or dependencies\n# having no cross-platform support, pipenv may install dependencies that don't work, or not\n# install all needed dependencies.\n#Pipfile.lock\n\n# PEP 582; used by e.g. github.com/David-OConnor/pyflow\n__pypackages__/\n\n# Celery stuff\ncelerybeat-schedule\ncelerybeat.pid\n\n# SageMath parsed files\n*.sage.py\n\n# Environments\n.env\n.venv\nenv/\nvenv/\nENV/\nenv.bak/\nvenv.bak/\n\n# Spyder project settings\n.spyderproject\n.spyproject\n\n# Rope project settings\n.ropeproject\n\n# mkdocs documentation\n/site\n\n# mypy\n.mypy_cache/\n.dmypy.json\ndmypy.json\n\n# Pyre type checker\n.pyre/\n\n# editors\n.idea\n.vscode\n\n# Rust\n/target\n"