Skip to content

Commit

Permalink
prepare release 7.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
tpaviot committed Feb 21, 2020
1 parent 0418bab commit 7848ff8
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 73 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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})

Expand Down
3 changes: 1 addition & 2 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
24 changes: 23 additions & 1 deletion NEWS
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -15,7 +38,6 @@ This release requires opencascade 7.4.0

* minor lgtm fixes


==========================
Version 7.4.0beta2 - December 2019

Expand Down
36 changes: 27 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
--------------
Expand All @@ -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 (<http://gmsh.info/>) and latest IfcOpenshell (<https://github.com/IfcOpenShell/IfcOpenShell/tree/v0.6.0>) 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
---------------------------------

Expand Down
2 changes: 1 addition & 1 deletion ci/conda/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{% set version = "7.4.0dev" %}
{% set version = "7.4.0" %}

package:
name: pythonocc-core
Expand Down
61 changes: 2 additions & 59 deletions cmake/__init__.py
Original file line number Diff line number Diff line change
@@ -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()

0 comments on commit 7848ff8

Please sign in to comment.