{"id":13468748,"url":"https://github.com/pyccel/pyccel","last_synced_at":"2026-02-26T19:27:06.274Z","repository":{"id":37406263,"uuid":"100463736","full_name":"pyccel/pyccel","owner":"pyccel","description":"Python extension language using accelerators","archived":false,"fork":false,"pushed_at":"2025-02-04T23:15:56.000Z","size":20869,"stargazers_count":357,"open_issues_count":227,"forks_count":60,"subscribers_count":13,"default_branch":"devel","last_synced_at":"2025-02-05T15:25:24.295Z","etag":null,"topics":["dsl","fortran","hpc","mpi","openacc","openmp","python","python3","sympy","transpiler"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyccel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/supported-libraries.md","governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-16T07:59:14.000Z","updated_at":"2025-02-04T12:30:01.000Z","dependencies_parsed_at":"2023-12-26T15:58:55.507Z","dependency_job_id":"dbfd8eb3-85d0-4b6e-96de-0145751b540c","html_url":"https://github.com/pyccel/pyccel","commit_stats":{"total_commits":2669,"total_committers":42,"mean_commits":63.54761904761905,"dds":0.6777819408017984,"last_synced_commit":"89cc07c9d3d7a63011670f2ee244fb683049e8c2"},"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyccel%2Fpyccel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyccel%2Fpyccel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyccel%2Fpyccel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyccel%2Fpyccel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyccel","download_url":"https://codeload.github.com/pyccel/pyccel/tar.gz/refs/heads/devel","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245597287,"owners_count":20641864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dsl","fortran","hpc","mpi","openacc","openmp","python","python3","sympy","transpiler"],"created_at":"2024-07-31T15:01:18.151Z","updated_at":"2026-02-26T19:27:06.268Z","avatar_url":"https://github.com/pyccel.png","language":"Python","readme":"# Pyccel : write Python code,  get Fortran speed\n\n [![Linux unit tests](https://github.com/pyccel/pyccel/actions/workflows/linux.yml/badge.svg?branch=devel\u0026event=push)](https://github.com/pyccel/pyccel/actions/workflows/linux.yml) [![MacOSX unit tests](https://github.com/pyccel/pyccel/actions/workflows/macosx.yml/badge.svg?branch=devel\u0026event=push)](https://github.com/pyccel/pyccel/actions/workflows/macosx.yml) [![Windows unit tests](https://github.com/pyccel/pyccel/actions/workflows/windows.yml/badge.svg?branch=devel\u0026event=push)](https://github.com/pyccel/pyccel/actions/workflows/windows.yml) [![Anaconda-Linux](https://github.com/pyccel/pyccel/actions/workflows/anaconda_linux.yml/badge.svg?branch=devel\u0026event=push)](https://github.com/pyccel/pyccel/actions/workflows/anaconda_linux.yml) [![Anaconda-Windows](https://github.com/pyccel/pyccel/actions/workflows/anaconda_windows.yml/badge.svg?branch=devel\u0026event=push)](https://github.com/pyccel/pyccel/actions/workflows/anaconda_windows.yml) [![Intel unit tests](https://github.com/pyccel/pyccel/actions/workflows/intel.yml/badge.svg?branch=devel\u0026event=push)](https://github.com/pyccel/pyccel/actions/workflows/intel.yml)\n\n[![Documentation](https://github.com/pyccel/pyccel/actions/workflows/documentation-deploy.yml/badge.svg?branch=devel\u0026event=push)](https://github.com/pyccel/pyccel/actions/workflows/documentation-deploy.yml) [![codacy](https://app.codacy.com/project/badge/Grade/9723f47b95db491886a0e78339bd4698)](https://www.codacy.com/gh/pyccel/pyccel?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=pyccel/pyccel\u0026utm_campaign=Badge_Grade) [![DOI](https://joss.theoj.org/papers/10.21105/joss.04991/status.svg)](https://doi.org/10.21105/joss.04991)\n\n**Pyccel** stands for Python extension language using accelerators.\n\nThe aim of **Pyccel** is to provide a simple way to generate automatically, parallel low level code. The main uses would be:\n\n1.  Convert a _Python_ code (or project) into a Fortran or C code.\n2.  Accelerate _Python_ functions by converting them to _Fortran_ or _C_ functions.\n\n**Pyccel** can be viewed as:\n\n-   _Python-to-Fortran/C_ converter\n-   a compiler for a _Domain Specific Language_ with _Python_ syntax\n\nPyccel comes with a selection of **extensions** allowing you to convert calls to some specific Python packages to Fortran/C. The following packages will be (partially) covered:\n\n-   `numpy`\n-   `scipy`\n\nPyccel's acceleration capabilities lead to much faster code. Comparisons of Python vs Pyccel or other tools can be found in the [benchmarks](https://github.com/pyccel/pyccel-benchmarks) repository.\nThe results for the `devel` branch currently show the following performance on Python 3.10:\n![Pyccel execution times for devel branch](https://raw.githubusercontent.com/pyccel/pyccel-benchmarks/main/version_specific_results/devel_performance_310_execution.svg)\n\nIf you are eager to try Pyccel out, we recommend reading our [quick-start guide](https://pyccel.github.io/pyccel/docs/quickstart.html).\n\n## Citing Pyccel\n\nIf Pyccel has been significant in your research, and you would like to acknowledge the project in your academic publication, we would ask that you cite the following paper:\n\nBourne, Güçlü, Hadjout and Ratnani (2023). Pyccel: a Python-to-X transpiler for scientific high-performance computing. Journal of Open Source Software, 8(83), 4991, \u003chttps://doi.org/10.21105/joss.04991\u003e\n\nThe associated bibtex can be found [here](https://github.com/pyccel/pyccel/blob/devel/pyccel.bib).\n\n## Installation\n\nPyccel has a few system requirements to ensure that the system where it is installed is capable of compiling Fortran code.\nThese requirements are detailed in the [documentation](https://pyccel.github.io/pyccel/docs/installation.html).\nOnce all requirements are satisfied, we recommend installing Pyccel into a Python virtual environment, which can be created with [venv](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment).\nOnce the Python virtual environment is ready and activated, Pyccel can be easily installed using [pip](https://github.com/pypa/pip?tab=readme-ov-file#pip---the-python-package-installer), the Python package installer.\nThe simple command\n\n```sh\npip install pyccel\n```\n\nwill download the latest release of Pyccel from [PyPI](https://pypi.org/project/pyccel/), the Python package index.\nAlternative installation methods such as installing from source, or installing with a docker, are described in the [documentation](https://pyccel.github.io/pyccel/docs/installation.html).\n\n## Testing\n\nIt is good practice to test that Pyccel works as intended on the machine where it is installed.\nTo this end Pyccel provides an extended test suite which can be downloaded from the official repository.\nAssuming the Python virtual environment is in the directory `\u003cENV-PATH\u003e`, we activate it with\n\n```sh\nsource \u003cENV-PATH\u003e/bin/activate\n```\n\nand install the `test` component of the Pyccel package:\n\n```sh\npip install \"pyccel[test]\"\n```\n\nThis installs a few additional Python packages which are necessary for running the unit tests and getting a coverage report.\n\nThe recommended way of running the unit tests is simply using the command line tool `pyccel test` which is installed with Pyccel.\nThis runs all unit tests using Pytest under the hood.\n\nAlternatively, if more fine-grained control over which tests are run is desired, e.g. for debugging local modifications to Pyccel, Pytest can be called directly using the commands provided in the [documentation](https://pyccel.github.io/pyccel/docs/testing.html).\n\n## Environment variables affecting Pyccel's behaviour\n\nPyccel's behaviour is affected by some environment variables:\n\n- `PYCCEL_DEFAULT_COMPILER` : Changes the default compiler from `GNU` to a new compiler family or JSON compiler configuration file.\n- `PYCCEL_CONFIG_HOME` : Changes the default location for new compiler families from `~/.pyccel`.\n- `PYCCEL_ERROR_MODE` : Can be set to 'developer' or 'user' to control the default verbosity of the errors.\n\n## Contributing\n\nWe welcome any and all contributions.\n\nThere are many ways to help with the Pyccel project which are more or less involved.\nA summary can be found in the [documentation](https://pyccel.github.io/pyccel/docs/CONTRIBUTING.html).\n\nWe can also be contacted via the [Pyccel Discord Server](https://discord.gg/2Q6hwjfFVb).\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyccel%2Fpyccel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyccel%2Fpyccel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyccel%2Fpyccel/lists"}