Pyccel

Latest version: v1.12.1

Safety actively analyzes 688705 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

1.12.1

Added

- 1915 : Add support for NumPy v2 `sign` function.
- 1988 : Add support for NumPy v2 (fix `floor`, fix type mixing, update tests).

Fixed

- 1853 : Fix translation of a file whose name conflicts with Fortran keywords.
- 1047 : Print the value of an unrecognised constant.
- 1951 : Fix return type for class whose argument cannot be wrapped.
- 1903 : Fix memory leak when using type annotations on local variables.
- 1927 : Improve error Message for missing target language compiler in Pyccel
- 1933 : Improve code printing speed.
- 1924 : Fix internal error arising in Duplicate or list comprehensions.
- 1970 : Fix missing `TypeError` for wrong type passed as optional argument.
- 1985 : Fix implementation of `gcd` and `lcm` for C and Fortran.
- 1998 : Fix compiler error when using a variable named `I`.

1.12.0

Added

- 1830 : Add a `pyccel.lambdify` function to accelerate SymPy expressions.
- 1867 : Add a `use_out` parameter to `pyccel.lambdify` to avoid unnecessary memory allocation.
- 1867 : Auto-generate a docstring for functions generated via calls to `pyccel.lambdify`.
- 1868 : Hide traceback for `epyccel` and `lambdify` errors.

Fixed

- 1762 : Fix array copy between different data types.
- 1792 : Fix array unpacking.
- 1795 : Fix bug when returning slices in C.
- 1218 : Fix bug when assigning an array to a slice in Fortran.
- 1830 : Fix missing allocation when returning an annotated array expression.
- 1853 : Fix translation of a file whose name conflicts with Fortran keywords.
- Link and mention `devel` branch, not `master`.

Changed

- 1866 : Raise a more informative error when mixing scalar and array return types.
- \[TESTS\] Filter out cast warnings in cast tests.
- \[INTERNALS\] Removed unused `fcode`, `ccode`, `cwrappercode`, `luacode`, and `pycode` functions from printers.
- \[INTERNALS\] Removed unused arguments from methods in `pyccel.codegen.codegen.Codegen`.

Deprecated

- 1820 : Deprecated unused decorator `lambdify`
- \[INTERNALS\] Removed unused and undocumented function `get_function_from_ast`.
- \[INTERNALS\] Remove function `Module.set_name`.
- \[INTERNALS\] Remove unused `assign_to` argument of `CodePrinter.doprint`.
- \[INTERNALS\] Remove unnecessary functions from `CodePrinter` : `_get_statement`, `_get_comment`.

1.11.2

Added

- 1689 : Add Python support for list method `append()`.
- 1692 : Add Python support for list method `insert()`.
- 1690 : Add Python support for list method `pop()`.
- 1691 : Add Python support for list method `clear()`.
- 1575 : Add support for homogeneous tuple type annotations on variables.
- 1425 : Add support for `numpy.isnan`, `numpy.isinf` and `numpy.isfinite`.
- 1738 : Add Python support for creating scalar sets with `{}`.
- 1738 : Add Python support for set method `add`.
- 1749 : Add Python support for set method `pop()`.

Fixed

- 1575 : Fixed inhomogeneous tuple (due to incompatible sizes) being treated as homogeneous tuple.
- 1182 : Fix tuples containing objects with different ranks.
- 1575 : Fix duplication operator for non-homogeneous tuples with a non-literal but constant multiplier.
- 1779 : Fix standalone partial templates.

Changed

- 1776 : Increase minimum version for `pytest` to 7.0.

Deprecated

- \[INTERNALS\] Remove unnecessary `dtype` parameter from `ast.core.Declare` class.
- \[INTERNALS\] Remove unnecessary `passed_from_dotted` parameter from `ast.core.Declare` class.
- \[INTERNALS\] Remove unused `ast.core.Block` class.

1.11.1

Fixed

- 1724 : Fix returns in for loops

1.11.0

Added

- 1645 : Handle deprecated `ast` classes.
- 1649 : Add support for `np.min` in C code.
- 1621 : Add support for `np.max` in C code.
- 1571 : Add support for the function `tuple`.
- 1493 : Add preliminary support for importing classes.
- 1578 : Allow classes to avoid type annotations for the self argument of a method.
- 1597 : Handle class docstrings.
- 1494 : Add support for functions returning class instances.
- 1495 : Add support for functions with class instance arguments.
- 1684 : Add support for classes without `__init__` functions.
- 1685 : Add support for `type()` function with class instance argument.
- 1605 : Add support for methods and interfaces in classes (including `__init__` and `__del__`).
- 1618 : Add support for class instance attributes.
- 1680 : Add support for `typing.Final`.
- Add a `--time_execution` flag to allow detailed investigation of critical sections of code.
- 1659 : Add multi-file support for classes.
- 1708 : Allow returning pointers to arguments from functions.
- \[INTERNALS\] Add `class_type` attribute to `TypedAstNode`.
- \[INTERNALS\] Add `PyccelPyArrayObject` datatype.

Fixed

- 1587 : Fix unnecessarily long file names generated by `epyccel`.
- 1576 : Correct destructor invocation for proper cleanup.
- 1576 : Remove inline class method definition.
- Ensure an error is raised when if conditions are used in comprehension statements.
- 1553 : Fix `np.sign` when using the `ifort` compiler.
- 1582 : Allow homogeneous tuples in classes.
- 1619 : Give priority to imported functions over builtin functions.
- 1614 : Allow relative paths for custom compilation file.
- 1615 : Fixed infinite loop when passing slices while copying arrays.
- 1628 : Fixed segmentation fault when writing to optional scalars.
- 1554 : Fix exit statement in Fortran with Intel compiler.
- 1564 : Fixed installation problems on Python 3.12.
- 1259 : Fix bug causing problems with user editable installation.
- 1651 : Fix name collision resolution to include parent scopes.
- 1156 : Raise an error for variable name collisions with non-variable objects.
- 1507 : Fix problems with name collisions in class functions.
- Ensure `pyccel-init` calls the related function.
- Stop unnecessarily importing deprecated NumPy classes `int`, `bool`, `float`, `complex` in Python translation.
- 1712 : Fix library path and OpenMP support for recent Apple chips by getting Homebrew directory with `brew --prefix`.
- 1687 : Pointers in tuples are deallocated.
- 1586 : Raise an error for targets of class instances which go out of scope too early.
- 1717 : Fix a bug when handling paths with dots.

Changed

- 1672 : Make `icx` and `ifx` the default Intel compilers (Found in Intel oneAPI).
- 1644 : Stop printing the step of a range if that step is 1.
- 1638 : Migrate from `setuptools` to `hatch` for installation scripts.
- Don't raise a warning for an unnecessary specification of the order.
- \[INTERNALS\] 1593 : Rename `PyccelAstNode.fst` to the `PyccelAstNode.ast`.
- \[INTERNALS\] 1593 : Use a setter instead of a method to update `PyccelAstNode.ast`.
- \[INTERNALS\] 1593 : Rename `BasicParser._current_fst_node` to the `BasicParser._current_ast_node`.
- \[INTERNALS\] 1390 : Remove dead code handling a `CodeBlock` in an assignment.
- \[INTERNALS\] 1582 : Remove the `HomogeneousTupleVariable` type.
- \[INTERNALS\] 1581 : Unify handling of string and Python annotations.

Deprecated

- 1593 : Remove undocumented, broken `lambdify` method.
- \[INTERNALS\] 1584 : Remove unused functions from `pyccel.ast.core` : `inline`, `subs`, `get_iterable_ranges`.
- \[INTERNALS\] 1584 : Remove unused functions from `pyccel.ast.datatypes` : `is_iterable_datatype`, `is_with_construct_datatype`, `is_pyccel_datatype`.
- \[INTERNALS\] 1584 : Remove unused class from `pyccel.ast.core`: `ForIterator`.
- \[INTERNALS\] 1584 : Remove unused method from `pyccel.ast.core`: `ClassDef.get_attribute`.
- \[INTERNALS\] 1676 : Remove `DottedFunctionCall` from `pyccel.ast.core` (use `bound_argument` instead).
- \[INTERNALS\] 1683 : Remove unused redundant class from `pyccel.ast.datatypes`: `UnionType`.

1.10.0

Added

- 633 & 1518 : Allow non-trivial types to be specified with mypy-compatible annotations.
- 1336 : Use template as a partial type.
- 1509 : Add type annotations for variables.
- 1528 : Add support for variable declarations in classes.
- 1491 : Add documentation for classes.

Fixed

- 387 : Raise a clear error when an unrecognised type is used in a type annotation.
- 1556 : Fixed print format string for Intel compatibility.
- 1557 : Fix return a new instance of a class.
- 1557 : Fix save multiple class instances to the same variable.

Changed

- \[INTERNALS\] 1520 : `ScopedNode` -> `ScopedAstNode`.
- \[INTERNALS\] 1520 : `PyccelAstNode` -> `TypedAstNode`.
- \[INTERNALS\] 1520 : `Basic` -> `PyccelAstNode`.

Deprecated

- Drop official support for Python 3.7 due to End of Life.

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.