Pyccel

Latest version: v1.11.2

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

Scan your dependencies

Page 1 of 3

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`.

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.

1.9.2

Added

- 1476 : Add C support for a class containing `Interfaces`.
- 1472 : Add C printing support for a class containing scalar data.
- 1492 : Types of arguments for class methods can be declared like function arguments.
- 1511 : Add support for the `cmath` library.
- Output readable header syntax errors.
- New environment variable `PYCCEL_DEFAULT_COMPILER`.
- 1508 : Add C support for a class destructor.
- 1508 : Add support for array data in classes.

Fixed

- 1484 : Use scope for classes to avoid name clashes.
- Stop raising warning for unrecognised functions imported via intermediate modules.
- 1156 : Raise a neat error for unhandled inhomogeneous tuple expressions.
- Set status of header variables to 'unallocated'.
- 1508 : Generate deallocations for classes and their attributes.

Changed

- 1484 : Improve handling of `DottedName` in `_assign_lhs_variable`.
- \[INTERNALS\] Move handling of variable headers to semantic stage.
- \[INTERNALS\] Moved handling of type annotations to the semantic stage.
- \[INTERNALS\] Remove unnecessary body argument from `FunctionAddress`.

Deprecated

- 1513 : Stop printing `types` decorators in generated Python code.
- Remove support for undocumented type syntax specifying precision (e.g. `int*8`).
- No longer possible to combine header annotations and argument type annotations.
- Remove support for specifying header annotations in a separate file.
- \[INTERNALS\] Remove `dtype_registry` in favour of `dtype_and_precision_registry`.
- \[INTERNALS\] Prefer `DataType` keys over string keys which describe data types.

1.9.1

Added

- 1497 : Add support for NumPy `copy` method: `a.copy`.
- 1497 : Add support for NumPy function `copy`.

Fixed

- 1499 : Fix passing temporary arrays to functions.
- 1241 : Missing transpose when converting from a C-ordered array to F-ordered array.
- 1241 : Incorrect transpose when copying an F-ordered array.
- 1241 : Fix infinite loop when passing an array as the only argument to `np.array`.
- 1506 : Increment `Py_None` reference count to avoid unexpected deallocation.

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.