diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e5ffb634..698f9299f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,7 @@ set(PYTHONOCC_VERSION_MAJOR 7) set(PYTHONOCC_VERSION_MINOR 4) set(PYTHONOCC_VERSION_PATCH 0) # Empty for official releases, set to -dev, -rc1, etc for development releases -set(PYTHONOCC_VERSION_DEVEL -rc1) +set(PYTHONOCC_VERSION_DEVEL) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) diff --git a/INSTALL.md b/INSTALL.md index 19e1a13b3..b5b10206c 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -55,8 +55,7 @@ If you have many cpus, you can increase the compilation speed with: make -j$ncpus -According to your machine/os/ncpus, the total compilation time shold be -between 5 to 15 minutes. +According to your machine/os/ncpus, the total compilation time should be around 15 minutes. Then diff --git a/NEWS b/NEWS index 2fa6561ce..8d3d75f3b 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,26 @@ +========================== +Version 7.4.0 - February2020 + +This release requires opencascade 7.4.0 + +* jupyter : improved webgl display, added utility fonctions (abb, oobb, mass computation etc.), fixed edges display wrong line type (dash) + +* display : added PySide2 to the backend list + +* DataExchange : fixes step loader when more than one root + +* DataExchange : added SVG exporter (possibility to render svg in jupyter) + +* wrapper : fixed for Standard_Integer parameters returned by reference + +* wrapper : improved wrapper for NCollection_DataMap + +* wrapper : removed unnecessary %nodefaultctor swig directive, that prevent using default constructor for many classes + +* demos : many fixes, improvements, and new examples + +* lgtm and codacy quality fixes + ========================== Version 7.4.0rc1 - December 2019 @@ -15,7 +38,6 @@ This release requires opencascade 7.4.0 * minor lgtm fixes - ========================== Version 7.4.0beta2 - December 2019 diff --git a/README.md b/README.md index 57522de15..997cd291d 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Downloads Badge](https://anaconda.org/pythonocc/pythonocc-core/badges/downloads.svg)](https://anaconda.org/pythonocc/pythonocc-core) [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/tpaviot/pythonocc-core.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/tpaviot/pythonocc-core/context:python) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/67c121324b8d4f37bc27029464c87020)](https://www.codacy.com/app/tpaviot/pythonocc-core?utm_source=github.com&utm_medium=referral&utm_content=tpaviot/pythonocc-core&utm_campaign=Badge_Grade) -[![Join the chat at https://gitter.im/tpaviot/pythonocc-core](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/tpaviot/pythonocc-core?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Binder](http://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/tpaviot/pythonocc-binderhub/master) pythonocc-core -------------- @@ -12,30 +12,48 @@ About ----- pythonocc is a python package whose purpose is to provide 3D modeling -features. It is intended to developers who aim at developing -CAD/PDM/PLM applications. +features. It is intended to CAD/PDM/PLM and BIM related development. -Latest release : [pythonocc-core 7.4.0rc1 (december 2019)](https://github.com/tpaviot/pythonocc-core/releases/tag/7.4.0rc1) +Latest release : [pythonocc-core 7.4.0 (february 2020)](https://github.com/tpaviot/pythonocc-core/releases/tag/7.4.0) -Build from source ------------------ +Features +-------- +pythonocc provides the following features: -Read the [INSTALL.md](https://github.com/tpaviot/pythonocc-core/blob/master/INSTALL.md) instructions where you find compilation instructions for all platforms. +* a full access from Python to almost all af the thousand OpenCascade C++ classes. Classes and methods/functions share the same names, and, as possible as it can be, the same signature + +* 3D visualization from the most famous Python Gui (pyQt, PySide1 and 2, wxPython) + +* 3D visualization in a web browser using WebGl and/or x3dom renderers + +* 3D visualization and work within a jupyter notebook + +* Various utility Python classes/methods for DataExchange, Topology operations, intertia computations etc. + +Try online at mybinder +---------------------- + +Click [![Binder](http://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/tpaviot/pythonocc-binderhub/master) to open a jupyter notebook running pythonocc-core 7.4.0, gmesh 4.5.2 () and latest IfcOpenshell () dev branch. Download/install binaries for Linux/OSX/Windows ----------------------------------------------- -pythonocc provides precompiled [conda packages](https://anaconda.org/pythonocc/pythonocc-core) (they depend on third part libraries made available from the dlr-sc and conda-forge conda channels) for python 3.5, 3.6 and 3.7. This will get you up and running in minutes whether you run win32/win64/linux64/osx64. Here is an example for python 3.7: +pythonocc provides precompiled [conda packages](https://anaconda.org/pythonocc/pythonocc-core) (they depend on third part libraries made available from the dlr-sc and conda-forge conda channels) for python 3.6 and 3.7. This will get you up and running in minutes whether you run win32/win64/linux64/osx64. Here is an example for python 3.7: ```bash # first create an environment conda create --name=whatever-name python=3.7 source activate whatever-name -conda install -c dlr-sc -c pythonocc pythonocc-core=7.4.0rc1 +conda install -c dlr-sc -c pythonocc pythonocc-core=7.4.0 ``` Conda packages are provided for python 3.6 and 3.7. +Build from source by yourself +----------------------------- + +Read the [INSTALL.md](https://github.com/tpaviot/pythonocc-core/blob/master/INSTALL.md) instructions where you find compilation instructions for all platforms. + Other pythonocc related resources --------------------------------- diff --git a/ci/conda/meta.yaml b/ci/conda/meta.yaml index e4eb3e0d6..ea5a2970e 100644 --- a/ci/conda/meta.yaml +++ b/ci/conda/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "7.4.0dev" %} +{% set version = "7.4.0" %} package: name: pythonocc-core diff --git a/cmake/__init__.py b/cmake/__init__.py index 68b03d87a..0a2feee8b 100644 --- a/cmake/__init__.py +++ b/cmake/__init__.py @@ -1,66 +1,9 @@ -import unittest - PYTHONOCC_VERSION_MAJOR = 7 PYTHONOCC_VERSION_MINOR = 4 PYTHONOCC_VERSION_PATCH = 0 + # Empty for official releases, set to -dev, -rc1, etc for development releases -PYTHONOCC_VERSION_DEVEL = '-rc1' +PYTHONOCC_VERSION_DEVEL = '' VERSION = "%s.%s.%s%s" % (PYTHONOCC_VERSION_MAJOR, PYTHONOCC_VERSION_MINOR, PYTHONOCC_VERSION_PATCH, PYTHONOCC_VERSION_DEVEL) - - -class pythonoccVersionNumberError(Exception): - pass - - -def require_pythonocc_version(required_version): - """ Check if the required pythonocc version is available. - required_version : a string containing three values separated by a dot - (eg '0.1.7.1', '0.19.4-rc1') - returns True if required match vurrent version, or raise en error - """ - spl = required_version.split('.') - if len(spl) == 3: - major, minor, patch_dev = spl - if '-' in patch_dev: - patch = patch_dev.split('-')[0] - else: - patch = patch_dev - elif len(spl) == 2: - major, minor = spl - patch = 0 - - if ((int(major) > PYTHONOCC_VERSION_MAJOR) or - (int(major) == PYTHONOCC_VERSION_MAJOR and int(minor) > PYTHONOCC_VERSION_MINOR) or - (int(major) == PYTHONOCC_VERSION_MAJOR and int(minor) == PYTHONOCC_VERSION_MINOR and - int(patch) >= PYTHONOCC_VERSION_PATCH)): - return True - else: - raise pythonoccVersionNumberError("Require pythonocc-%s but current is pythonocc-%s" % (required_version, VERSION)) - -def test_require_pythonocc_version(): - # this one should raise an assertion error - try: - require_pythonocc_version('0.17.1') - except pythonoccVersionNumberError: - print("Exception correctly raised for 0.17.1 check") - try: - require_pythonocc_version('0.18') - except pythonoccVersionNumberError: - print("Exception correctly raised for 0.18 check") - try: - require_pythonocc_version('0.18.1') - except pythonoccVersionNumberError: - print("Exception correctly raised for 0.18.1 check") - # the following should be ok - require_pythonocc_version('0.18.2-dev') - require_pythonocc_version('0.18.2') - require_pythonocc_version('0.18.3-rc2') - require_pythonocc_version('0.19') - require_pythonocc_version('0.19.1') - require_pythonocc_version('1.0') - - -if __name__ == "__main__": - test_require_pythonocc_version()