Hello community,

here is the log from the commit of package python-geomdl for openSUSE:Factory 
checked in at 2020-11-13 18:59:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-geomdl (Old)
 and      /work/SRC/openSUSE:Factory/.python-geomdl.new.24930 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-geomdl"

Fri Nov 13 18:59:35 2020 rev:2 rq:848214 version:5.3.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-geomdl/python-geomdl.changes      
2020-09-22 21:05:43.787643194 +0200
+++ /work/SRC/openSUSE:Factory/.python-geomdl.new.24930/python-geomdl.changes   
2020-11-13 18:59:55.238170663 +0100
@@ -1,0 +2,8 @@
+Thu Nov 12 12:46:49 UTC 2020 - Marketa Machova <mmach...@suse.com>
+
+- Update to 5.3.0
+  * Deprecated some methods that produce incorrect results
+  * Fixed sample_size computation
+  * Minor fixes and documnetation updates
+
+-------------------------------------------------------------------

Old:
----
  NURBS-Python-5.2.10.tar.gz

New:
----
  NURBS-Python-5.3.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-geomdl.spec ++++++
--- /var/tmp/diff_new_pack.UFn84J/_old  2020-11-13 18:59:55.910171400 +0100
+++ /var/tmp/diff_new_pack.UFn84J/_new  2020-11-13 18:59:55.914171404 +0100
@@ -20,7 +20,7 @@
 %define packagename geomdl
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-geomdl
-Version:        5.2.10
+Version:        5.3.0
 Release:        0
 Summary:        Object-oriented B-Spline and NURBS evaluation library
 License:        MIT

++++++ NURBS-Python-5.2.10.tar.gz -> NURBS-Python-5.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/.coveragerc 
new/NURBS-Python-5.3.0/.coveragerc
--- old/NURBS-Python-5.2.10/.coveragerc 2020-07-08 02:17:17.000000000 +0200
+++ new/NURBS-Python-5.3.0/.coveragerc  2020-08-06 08:05:59.000000000 +0200
@@ -14,5 +14,4 @@
     docs/*
     setup.py
     geomdl/__init__.py
-    geomdl/shapes/*
     geomdl/visualization/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/.github/CONTRIBUTING.md 
new/NURBS-Python-5.3.0/.github/CONTRIBUTING.md
--- old/NURBS-Python-5.2.10/.github/CONTRIBUTING.md     2020-07-08 
02:17:17.000000000 +0200
+++ new/NURBS-Python-5.3.0/.github/CONTRIBUTING.md      1970-01-01 
01:00:00.000000000 +0100
@@ -1,146 +0,0 @@
-# Contribution Guidelines
-
-NURBS-Python (geomdl) is a free and open-source project released under [MIT 
License](../LICENSE).
-You are always welcome to contribute!
-
-The development started with the intentions of providing an object-oriented 
NURBS library in pure Python for
-scientific and research purposes. The author and all the contributors 
volunteered their free time to develop and
-improve this project, and I appreciate your time in using, developing and 
testing NURBS-Python (geomdl).
-
-## Before you post, please read!
-
-We have a nice [Code of Conduct](CODE_OF_CONDUCT.md) document and it describes 
pretty much everything you need to know
-in the most appropriate way.
-
-* Please be kind, respectful and reasonable in your posts
-* Long posts are always appreciated and will be carefully read as long as they 
are related to the topic
-* Horrible grammar, bad English, etc. are all okay, you will not be judged for 
those
-
-It would be a nice gesture to open a new issue and discuss what you are 
planning to add/change before starting to code.
-
-## What happens when you found a bug
-
-* Read __Before You Post__ rules (right above)
-* Make sure that you are using the latest version on the `master` (or 
`devmaster` if exists) branch
-* Include all details and steps to reproduce the problem
-
-## Coding Standards
-
-The following is the list of cpdong standards you are expected to follow when 
developing for the
-[Core Library](http://nurbs-python.readthedocs.io/en/latest/modules.html).
-
-* Implement using pure python code, i.e. no compilable code, including C/C++ 
code using Python's C API, Cython, etc.
-* For the core library (e.g. algorithms, geometrical operations), only use the 
modules that come with Python's standard library. Please note that NumPy, 
SciPy, etc. **are not** included in the standard library.
-* The code should be compatible with Python versions 2.7.x, 3.4+ and higher.
-* It is acceptable to use very well-known backporting and helper modules like 
[functools32](https://pypi.org/project/functools32/) only if critically 
necessary. These modules must be installable via `pip` on all platforms without 
any issues or additional requirements.
-* Soft dependencies are acceptable; e.g. if some module is installed, then use 
the functionality. Otherwise, use a custom or simplified implementation of it.
-* Please don't mix the data types (lists, tuples, arrays, etc.)
-* All new code should come with the proper tests and they should be executable 
with `pytest`. If you are implementing alternative evaluation algorithms, then 
you should also include tests which compare the new algorithm(s) with the 
existing ones.
-
-For new 
[Visualization](http://nurbs-python.readthedocs.io/en/latest/modules_visualization.html)
 modules or improvements
-to the existing ones, the above list is still valid _with one exception_: You 
are free to use external libraries,
-including NumPy.
-
-It would be nice to create new modules, i.e. new Python files, for the new 
features you are going to implement.
-You can use the following as a template for your new module:
-
-```python
-"""
-.. module:: file name without the extension
-    :platform: Unix, Windows
-    :synopsis: Very brief description of the module
-
-.. moduleauthor:: Your name <y...@email.com>
-
-"""
-
-import abc
-from . import abstract
-from .exceptions import GeomdlException
-from ._utilities import export, add_metaclass
-
-
-@export
-def exported_function(arg1, **kwargs):
-    """ Brief explanation of the function's purpose
-
-    Detailed explanation
-
-    Keyword Arguments:
-        *
-        *
-
-    :param arg1: description of the parameter
-    :type arg1: type of the parameter (int, float, etc.)
-    """
-    # Code here
-    pass
-
-
-def not_exported_function():
-    """ Function description """
-    pass
-
-
-@add_metaclass(abc.ABCMeta)
-class NewAbstractClass(abstract.Geometry):
-    """ Abstract class"""
-    def __init__(self, **kwargs):
-        super(NewAbstractClass, self).__init__(**kwargs)
-
-    @abc.abstractmethod
-    def my_method(self, *args, **kwargs):
-        """ Docstrings """
-        pass
-
-
-@export
-class ImpClass(NewAbstractClass):
-    """ Extended from the abstract class """
-    def __init__(self, **kwargs):
-        super(ImpClass, self).__init__(**kwargs)
-
-    def my_method(self, *args, **kwargs):
-        # Implementation of the abstract method
-        pass
-```
-
-## Pull requests
-
-It is suggested to [create pull 
requests](https://help.github.com/articles/creating-a-pull-request/)
-against relevant branch as described on the [wiki 
page](https://github.com/orbingol/NURBS-Python/wiki).
-
-CI tools are set to test every pull request. The test results will become 
accessible in a short while under the
-pull request page. If your code does not follow the standards as described 
under **Coding Standards** section, your PR
-will not be considered for review at all.
-
-I would appreciate if you could run a Python linter utility, e.g. 
`prospector`, and clean the warnings in the code
-before opening the pull request.
-
-All your changes will be reviewed and if they are accepted, they will be 
merged to the `master` branch in the next
-subsequent release of NURBS-Python and your name will be added to the 
[CONTRIBUTORS](../CONTRIBUTORS.rst) file.
-
-Feel free to open a ticket on the project issue tracker, if you have any 
questions.
-
-## Tests
-
-The `tests/` directory includes all automated tests. Implementing more tests 
that could validate the algorithms and
-increase the code coverage are appreciated. All included tests are designed to 
run with
-[pytest](https://pypi.org/project/pytest/).
-
-## Documentation
-
-Any contribution would be great, including the ones for the [NURBS-Python 
documentation](http://nurbs-python.readthedocs.io/en/latest/).
-The latest development version of the documentation can be found 
[here](https://nurbs-python.readthedocs.io/en/devmaster/).
-The documentation can be compiled using 
[Sphinx](https://pypi.org/project/Sphinx/). Please refer to the Sphinx
-documentation for more details.
-
-The repository is connected to [Read the Docs](https://readthedocs.org/) 
service.
-Please refer to the [configuration 
file](https://github.com/orbingol/NURBS-Python/blob/master/.readthedocs.yml)
-in the project repository and [Read the Docs 
documentation](https://docs.readthedocs.io/en/latest/) for details.
-
------
-
-As always, all contributions, including constructive comments, ideas, code 
improvements and tests are much appreciated.
-
-Thanks in advance!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/NURBS-Python-5.2.10/.github/ISSUE_TEMPLATE/feature_request.md 
new/NURBS-Python-5.3.0/.github/ISSUE_TEMPLATE/feature_request.md
--- old/NURBS-Python-5.2.10/.github/ISSUE_TEMPLATE/feature_request.md   
2020-07-08 02:17:17.000000000 +0200
+++ new/NURBS-Python-5.3.0/.github/ISSUE_TEMPLATE/feature_request.md    
1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for geomdl project
-title: ''
-labels: feature request
-assignees: ''
-
----
-
-**Is your feature request related to a problem? Please describe.**
-A clear and concise description of what the problem is. Ex. I'm always 
frustrated when [...]
-
-**Describe the solution you'd like**
-A clear and concise description of what you want to happen.
-
-**Describe alternatives you've considered**
-A clear and concise description of any alternative solutions or features 
you've considered.
-
-**Additional context**
-Add any other context or screenshots about the feature request here.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/.gitignore 
new/NURBS-Python-5.3.0/.gitignore
--- old/NURBS-Python-5.2.10/.gitignore  2020-07-08 02:17:17.000000000 +0200
+++ new/NURBS-Python-5.3.0/.gitignore   2020-08-06 08:05:59.000000000 +0200
@@ -25,3 +25,4 @@
 *.pyd
 *.whl
 *.tar.gz
+.coverage
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/CHANGELOG.md 
new/NURBS-Python-5.3.0/CHANGELOG.md
--- old/NURBS-Python-5.2.10/CHANGELOG.md        2020-07-08 02:17:17.000000000 
+0200
+++ new/NURBS-Python-5.3.0/CHANGELOG.md 2020-08-06 08:05:59.000000000 +0200
@@ -1,5 +1,11 @@
 # geomdl Changelog
 
+## v5.3.0 released on 2020-08-05
+
+* Deprecated some methods that produce incorrect results
+* Fixed sample_size computation
+* Minor fixes and documnetation updates
+
 ## v5.2.10 released on 2020-07-07
 
 * Fixed a bug causing double matplotlib figures when run on a Jupyter notebook
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/CONTRIBUTING.md 
new/NURBS-Python-5.3.0/CONTRIBUTING.md
--- old/NURBS-Python-5.2.10/CONTRIBUTING.md     1970-01-01 01:00:00.000000000 
+0100
+++ new/NURBS-Python-5.3.0/CONTRIBUTING.md      2020-08-06 08:05:59.000000000 
+0200
@@ -0,0 +1 @@
+Please refer to the documentation for more details.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/LICENSE 
new/NURBS-Python-5.3.0/LICENSE
--- old/NURBS-Python-5.2.10/LICENSE     2020-07-08 02:17:17.000000000 +0200
+++ new/NURBS-Python-5.3.0/LICENSE      2020-08-06 08:05:59.000000000 +0200
@@ -1,4 +1,4 @@
-Copyright (c) 2016-2019 Onur Rauf Bingol
+Copyright (c) 2016-2020 Onur Rauf Bingol
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/README.rst 
new/NURBS-Python-5.3.0/README.rst
--- old/NURBS-Python-5.2.10/README.rst  2020-07-08 02:17:17.000000000 +0200
+++ new/NURBS-Python-5.3.0/README.rst   2020-08-06 08:05:59.000000000 +0200
@@ -98,17 +98,17 @@
 .. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.815010.svg
 .. _DOI: https://doi.org/10.5281/zenodo.815010
 
-.. |RTD| image:: 
https://readthedocs.org/projects/nurbs-python/badge/?version=latest
-.. _RTD: https://nurbs-python.readthedocs.io/en/latest/?badge=latest
+.. |RTD| image:: 
https://readthedocs.org/projects/nurbs-python/badge/?version=5.x
+.. _RTD: https://nurbs-python.readthedocs.io/en/5.x/?badge=5.x
 
-.. |TRAVISCI| image:: 
https://travis-ci.org/orbingol/NURBS-Python.svg?branch=master
+.. |TRAVISCI| image:: 
https://travis-ci.org/orbingol/NURBS-Python.svg?branch=5.x
 .. _TRAVISCI: https://travis-ci.org/orbingol/NURBS-Python
 
-.. |APPVEYOR| image:: 
https://ci.appveyor.com/api/projects/status/github/orbingol/nurbs-python?branch=master&svg=true
+.. |APPVEYOR| image:: 
https://ci.appveyor.com/api/projects/status/github/orbingol/nurbs-python?branch=5.x&svg=true
 .. _APPVEYOR: https://ci.appveyor.com/project/orbingol/nurbs-python
 
-.. |CIRCLECI| image:: 
https://circleci.com/gh/orbingol/NURBS-Python/tree/master.svg?style=shield
-.. _CIRCLECI: https://circleci.com/gh/orbingol/NURBS-Python/tree/master
+.. |CIRCLECI| image:: 
https://circleci.com/gh/orbingol/NURBS-Python/tree/5.x.svg?style=shield
+.. _CIRCLECI: https://circleci.com/gh/orbingol/NURBS-Python/tree/5.x
 
 .. |PYPI| image:: https://img.shields.io/pypi/v/geomdl.svg
 .. _PYPI: https://pypi.org/project/geomdl/
@@ -119,5 +119,5 @@
 .. |ANACONDA| image:: https://anaconda.org/orbingol/geomdl/badges/version.svg
 .. _ANACONDA: https://anaconda.org/orbingol/geomdl
 
-.. |CODECOV| image:: 
https://codecov.io/gh/orbingol/NURBS-Python/branch/master/graph/badge.svg
+.. |CODECOV| image:: 
https://codecov.io/gh/orbingol/NURBS-Python/branch/5.x/graph/badge.svg
 .. _CODECOV: https://codecov.io/gh/orbingol/NURBS-Python
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/docs/contributing.rst 
new/NURBS-Python-5.3.0/docs/contributing.rst
--- old/NURBS-Python-5.2.10/docs/contributing.rst       1970-01-01 
01:00:00.000000000 +0100
+++ new/NURBS-Python-5.3.0/docs/contributing.rst        2020-08-06 
08:05:59.000000000 +0200
@@ -0,0 +1,28 @@
+
+Contributing
+============
+
+Bugs reports
+------------
+
+You are encouraged to use the **Bug Reporting Template** on the `issue tracker 
<https://github.com/orbingol/NURBS-Python/issues>`_ for reporting bugs.
+Please fill all required fields and be clear as much as possible. You may 
attach scripts and sample data to the ticket.
+
+All bug reports must be reproducable. Tickets with missing or unclear 
information may be ignored.
+
+Please email the author if you have any questions about bug reporting.
+
+Pull requests
+-------------
+
+Before working on a pull request, please contact the author or open a ticket 
on the `issue tracker <https://github.com/orbingol/NURBS-Python/issues>`_ to 
discuss the details. Otherwise, your pull requests may be ignored.
+
+Feature requests
+----------------
+
+Please email the author for feature requests with the details of your feature 
request.
+
+Questions and comments
+----------------------
+
+Using ``nurbs-pyt...@googlegroups.com`` is strongly encouraged for questions 
and comments.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/docs/examples_repo.rst 
new/NURBS-Python-5.3.0/docs/examples_repo.rst
--- old/NURBS-Python-5.2.10/docs/examples_repo.rst      2020-07-08 
02:17:17.000000000 +0200
+++ new/NURBS-Python-5.3.0/docs/examples_repo.rst       2020-08-06 
08:05:59.000000000 +0200
@@ -28,4 +28,4 @@
 for more details on using NURBS-Python Matplotlib and Plotly visualization 
modules with Jupyter notebooks.
 
 
-.. _Examples: https://github.com/orbingol/NURBS-Python_Examples
+.. _Examples: https://github.com/orbingol/geomdl-examples
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/docs/index.rst 
new/NURBS-Python-5.3.0/docs/index.rst
--- old/NURBS-Python-5.2.10/docs/index.rst      2020-07-08 02:17:17.000000000 
+0200
+++ new/NURBS-Python-5.3.0/docs/index.rst       2020-08-06 08:05:59.000000000 
+0200
@@ -29,6 +29,7 @@
     introduction
     citing
     q_a
+    contributing
 
 .. _using:
 
@@ -72,11 +73,11 @@
 .. |ANACONDA| image:: https://anaconda.org/orbingol/geomdl/badges/version.svg
 .. _ANACONDA: https://anaconda.org/orbingol/geomdl
 
-.. |TRAVISCI| image:: 
https://travis-ci.org/orbingol/NURBS-Python.svg?branch=master
+.. |TRAVISCI| image:: 
https://travis-ci.org/orbingol/NURBS-Python.svg?branch=5.x
 .. _TRAVISCI: https://travis-ci.org/orbingol/NURBS-Python
 
-.. |APPVEYOR| image:: 
https://ci.appveyor.com/api/projects/status/github/orbingol/nurbs-python?branch=master&svg=true
+.. |APPVEYOR| image:: 
https://ci.appveyor.com/api/projects/status/github/orbingol/nurbs-python?branch=5.x&svg=true
 .. _APPVEYOR: https://ci.appveyor.com/project/orbingol/nurbs-python
 
-.. |CIRCLECI| image:: 
https://circleci.com/gh/orbingol/NURBS-Python/tree/master.svg?style=shield
-.. _CIRCLECI: https://circleci.com/gh/orbingol/NURBS-Python/tree/master
+.. |CIRCLECI| image:: 
https://circleci.com/gh/orbingol/NURBS-Python/tree/5.x.svg?style=shield
+.. _CIRCLECI: https://circleci.com/gh/orbingol/NURBS-Python/tree/5.x
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/docs/q_a.rst 
new/NURBS-Python-5.3.0/docs/q_a.rst
--- old/NURBS-Python-5.2.10/docs/q_a.rst        2020-07-08 02:17:17.000000000 
+0200
+++ new/NURBS-Python-5.3.0/docs/q_a.rst 2020-08-06 08:05:59.000000000 +0200
@@ -70,26 +70,6 @@
 
 Alternatively, you may send an email to ``nurbs-pyt...@googlegroups.com``.
 
-Issues and Reporting
-====================
-
-Bugs and Feature Requests
--------------------------
-
-NURBS-Python project uses the `issue tracker on GitHub 
<https://github.com/orbingol/NURBS-Python/issues>`_ for
-reporting bugs and requesting for a new feature. Please use the provided 
templates on GitHub.
-
-Contributions
--------------
-
-All contributions to NURBS-Python are welcomed and I appreciate your time and 
efforts in advance. I have posted
-some `guidelines for contributing 
<https://github.com/orbingol/NURBS-Python/blob/master/.github/CONTRIBUTING.md>`_
-and I would be really happy if you could follow these guidelines if you would 
like to contribute to NURBS-Python.
-
-It is suggested to open `a new ticket 
<https://github.com/orbingol/NURBS-Python/issues/new>`_ GitHub to discuss what
-you would like to fix or add as a new feature, as it may already been 
fixed/implemented in some of the development
-branches.
-
 How can I add a new feature?
 ============================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/geomdl/BSpline.py 
new/NURBS-Python-5.3.0/geomdl/BSpline.py
--- old/NURBS-Python-5.2.10/geomdl/BSpline.py   2020-07-08 02:17:17.000000000 
+0200
+++ new/NURBS-Python-5.3.0/geomdl/BSpline.py    2020-08-06 08:05:59.000000000 
+0200
@@ -284,65 +284,40 @@
     def tangent(self, parpos, **kwargs):
         """ Evaluates the tangent vector of the curve at the given parametric 
position(s).
 
-        The ``parpos`` argument can be
+        .. deprecated: 5.3.0
 
-        * a float value for evaluation at a single parametric position
-        * a list of float values for evaluation at the multiple parametric 
positions
-
-        The return value will be in the order of the input parametric position 
list.
-
-        This method accepts the following keyword arguments:
-
-        * ``normalize``: normalizes the output vector. Default value is *True*.
+            Please use :func:`operations.tangent` instead.
 
         :param parpos: parametric position(s) where the evaluation will be 
executed
         :type parpos: float, list or tuple
         :return: tangent vector as a tuple of the origin point and the vector 
components
         :rtype: tuple
         """
-        return operations.tangent(self, parpos, **kwargs)
+        return tuple()
 
     def normal(self, parpos, **kwargs):
         """ Evaluates the normal to the tangent vector of the curve at the 
given parametric position(s).
 
-        The ``parpos`` argument can be
-
-        * a float value for evaluation at a single parametric position
-        * a list of float values for evaluation at the multiple parametric 
positions
-
-        The return value will be in the order of the input parametric position 
list.
-
-        This method accepts the following keyword arguments:
-
-        * ``normalize``: normalizes the output vector. Default value is *True*.
+        .. deprecated: 5.3.0
 
         :param parpos: parametric position(s) where the evaluation will be 
executed
         :type parpos: float, list or tuple
         :return: normal vector as a tuple of the origin point and the vector 
components
         :rtype: tuple
         """
-        return operations.normal(self, parpos, **kwargs)
+        return tuple()
 
     def binormal(self, parpos, **kwargs):
         """ Evaluates the binormal vector of the curve at the given parametric 
position(s).
 
-        The ``parpos`` argument can be
-
-        * a float value for evaluation at a single parametric position
-        * a list of float values for evaluation at the multiple parametric 
positions
-
-        The return value will be in the order of the input parametric position 
list.
-
-        This method accepts the following keyword arguments:
-
-        * ``normalize``: normalizes the output vector. Default value is *True*.
+        .. deprecated: 5.3.0
 
         :param parpos: parametric position(s) where the evaluation will be 
executed
         :type parpos: float, list or tuple
         :return: binormal vector as a tuple of the origin point and the vector 
components
         :rtype: tuple
         """
-        return operations.binormal(self, parpos, **kwargs)
+        return tuple()
 
 
 @utl.export
@@ -777,46 +752,30 @@
     def tangent(self, parpos, **kwargs):
         """ Evaluates the tangent vectors of the surface at the given 
parametric position(s).
 
-        The ``param`` argument can be
-
-        * a float value for evaluation at a single parametric position
-        * a list of float values for evaluation at the multiple parametric 
positions
-
-        The parametric positions should be a pair of (u,v) values. The return 
value will be in the order of the input
-        parametric position list.
+        .. deprecated: 5.3.0
 
-        This method accepts the following keyword arguments:
-
-        * ``normalize``: normalizes the output vector. Default value is *True*.
+            Please use :func:`operations.tangent` instead.
 
         :param parpos: parametric position(s) where the evaluation will be 
executed
         :type parpos: list or tuple
         :return: an array containing "point" and "vector"s on u- and 
v-directions, respectively
         :rtype: tuple
         """
-        return operations.tangent(self, parpos, **kwargs)
+        return tuple()
 
     def normal(self, parpos, **kwargs):
         """ Evaluates the normal vector of the surface at the given parametric 
position(s).
 
-        The ``param`` argument can be
-
-        * a float value for evaluation at a single parametric position
-        * a list of float values for evaluation at the multiple parametric 
positions
-
-        The parametric positions should be a pair of (u,v) values. The return 
value will be in the order of the input
-        parametric position list.
-
-        This method accepts the following keyword arguments:
+        .. deprecated: 5.3.0
 
-        * ``normalize``: normalizes the output vector. Default value is *True*.
+            Please use :func:`operations.normal` instead.
 
         :param parpos: parametric position(s) where the evaluation will be 
executed
         :type parpos: list or tuple
         :return: an array containing "point" and "vector" pairs
         :rtype: tuple
         """
-        return operations.normal(self, parpos, **kwargs)
+        return tuple()
 
 
 @utl.export
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/geomdl/__init__.py 
new/NURBS-Python-5.3.0/geomdl/__init__.py
--- old/NURBS-Python-5.2.10/geomdl/__init__.py  2020-07-08 02:17:17.000000000 
+0200
+++ new/NURBS-Python-5.3.0/geomdl/__init__.py   2020-08-06 08:05:59.000000000 
+0200
@@ -5,7 +5,7 @@
 """
 
 # Library version
-__version__ = "5.2.10"
+__version__ = "5.3.0"
 
 # Author and license
 __author__ = "Onur Rauf Bingol"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/geomdl/_operations.py 
new/NURBS-Python-5.3.0/geomdl/_operations.py
--- old/NURBS-Python-5.2.10/geomdl/_operations.py       2020-07-08 
02:17:17.000000000 +0200
+++ new/NURBS-Python-5.3.0/geomdl/_operations.py        2020-08-06 
08:05:59.000000000 +0200
@@ -57,99 +57,6 @@
     return tuple(ret_vector)
 
 
-def normal_curve_single(obj, u, normalize):
-    """ Evaluates the vector normal to the tangent vector at the input 
parameter, u.
-
-    The output returns a list containing the starting point (i.e. origin) of 
the vector and the vector itself.
-
-    :param obj: input curve
-    :type obj: abstract.Curve
-    :param u: parameter
-    :type u: float
-    :param normalize: if True, the returned vector is converted to a unit 
vector
-    :type normalize: bool
-    :return: a list containing "point" and "vector" pairs
-    :rtype: tuple
-    """
-    # Find 1st derivative
-    ders = obj.derivatives(u, 1)
-
-    # Apply fix on 
https://github.com/orbingol/NURBS-Python/pull/50#issuecomment-499354073
-    t = ders[1]
-    tn = [0.0, 0.0, 1.0]
-    n = linalg.vector_cross(t, tn)
-
-    # Normalize the vector component
-    vector = linalg.vector_normalize(n) if normalize else n
-    point = ders[0]
-
-    return tuple(point), tuple(vector)
-
-
-def normal_curve_single_list(obj, param_list, normalize):
-    """ Evaluates the curve normal vectors at the given list of parameter 
values.
-
-    :param obj: input curve
-    :type obj: abstract.Curve
-    :param param_list: parameter list
-    :type param_list: list or tuple
-    :param normalize: if True, the returned vector is converted to a unit 
vector
-    :type normalize: bool
-    :return: a list containing "point" and "vector" pairs
-    :rtype: tuple
-    """
-    ret_vector = []
-    for param in param_list:
-        temp = normal_curve_single(obj, param, normalize)
-        ret_vector.append(temp)
-    return tuple(ret_vector)
-
-
-def binormal_curve_single(obj, u, normalize):
-    """ Evaluates the curve binormal vector at the given u parameter.
-
-    Curve binormal is the cross product of the normal and the tangent vectors.
-    The output returns a list containing the starting point (i.e. origin) of 
the vector and the vector itself.
-
-    :param obj: input curve
-    :type obj: abstract.Curve
-    :param u: parameter
-    :type u: float
-    :param normalize: if True, the returned vector is converted to a unit 
vector
-    :type normalize: bool
-    :return: a list containing "point" and "vector" pairs
-    :rtype: tuple
-    """
-    # Cross product of tangent and normal vectors gives binormal vector
-    tan_vector = tangent_curve_single(obj, u, normalize)
-    norm_vector = normal_curve_single(obj, u, normalize)
-
-    point = tan_vector[0]
-    vector = linalg.vector_cross(tan_vector[1], norm_vector[1])
-    vector = linalg.vector_normalize(vector) if normalize else vector
-
-    return tuple(point), tuple(vector)
-
-
-def binormal_curve_single_list(obj, param_list, normalize):
-    """ Evaluates the curve binormal vectors at the given list of parameter 
values.
-
-    :param obj: input curve
-    :type obj: abstract.Curve
-    :param param_list: parameter list
-    :type param_list: list or tuple
-    :param normalize: if True, the returned vector is converted to a unit 
vector
-    :type normalize: bool
-    :return: a list containing "point" and "vector" pairs
-    :rtype: tuple
-    """
-    ret_vector = []
-    for param in param_list:
-        temp = binormal_curve_single(obj, param, normalize)
-        ret_vector.append(temp)
-    return tuple(ret_vector)
-
-
 def tangent_surface_single(obj, uv, normalize):
     """ Evaluates the surface tangent vector at the given (u,v) parameter pair.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/geomdl/abstract.py 
new/NURBS-Python-5.3.0/geomdl/abstract.py
--- old/NURBS-Python-5.2.10/geomdl/abstract.py  2020-07-08 02:17:17.000000000 
+0200
+++ new/NURBS-Python-5.3.0/geomdl/abstract.py   2020-08-06 08:05:59.000000000 
+0200
@@ -10,6 +10,7 @@
 import copy
 import abc
 import warnings
+import math
 from . import vis, helpers, knotvector, voxelize, utilities
 from . import tessellate
 from .evaluators import AbstractEvaluator
@@ -850,7 +851,8 @@
         :setter: Sets sample size
         :type: int
         """
-        return int(1.0 / self.delta) + 1
+        ss = math.floor((1.0 / self.delta) + 0.5)
+        return int(ss)
 
     @sample_size.setter
     def sample_size(self, value):
@@ -866,7 +868,7 @@
         stop = self.knotvector[-(self.degree+1)]
 
         # Set delta value
-        self.delta = (stop - start) / float(value - 1)
+        self.delta = (stop - start) / float(value)
 
     @property
     def delta(self):
@@ -1490,7 +1492,8 @@
         :setter: Sets sample size for the u-direction
         :type: int
         """
-        return int(1.0 / self.delta_u) + 1
+        ss = math.floor((1.0 / self.delta_u) + 0.5)
+        return int(ss)
 
     @sample_size_u.setter
     def sample_size_u(self, value):
@@ -1506,7 +1509,7 @@
         stop_u = self.knotvector_u[-(self.degree_u+1)]
 
         # Set delta values
-        self.delta_u = (stop_u - start_u) / float(value - 1)
+        self.delta_u = (stop_u - start_u) / float(value)
 
     @property
     def sample_size_v(self):
@@ -1521,7 +1524,8 @@
         :setter: Sets sample size for the v-direction
         :type: int
         """
-        return int(1.0 / self.delta_v) + 1
+        ss = math.floor((1.0 / self.delta_v) + 0.5)
+        return int(ss)
 
     @sample_size_v.setter
     def sample_size_v(self, value):
@@ -1537,7 +1541,7 @@
         stop_v = self.knotvector_v[-(self.degree_v+1)]
 
         # Set delta values
-        self.delta_v = (stop_v - start_v) / float(value - 1)
+        self.delta_v = (stop_v - start_v) / float(value)
 
     @property
     def sample_size(self):
@@ -1558,9 +1562,9 @@
         :setter: Sets sample size for both u- and v-directions
         :type: int
         """
-        sample_size_u = int(1.0 / self.delta_u) + 1
-        sample_size_v = int(1.0 / self.delta_v) + 1
-        return sample_size_u, sample_size_v
+        sample_size_u = math.floor((1.0 / self.delta_u) + 0.5)
+        sample_size_v = math.floor((1.0 / self.delta_v) + 0.5)
+        return int(sample_size_u), int(sample_size_v)
 
     @sample_size.setter
     def sample_size(self, value):
@@ -1576,8 +1580,8 @@
         stop_v = self.knotvector_v[-(self.degree_v+1)]
 
         # Set delta values
-        self.delta_u = (stop_u - start_u) / float(value - 1)
-        self.delta_v = (stop_v - start_v) / float(value - 1)
+        self.delta_u = (stop_u - start_u) / float(value)
+        self.delta_v = (stop_v - start_v) / float(value)
 
     @property
     def delta_u(self):
@@ -2538,7 +2542,8 @@
         :setter: Sets sample size for the u-direction
         :type: int
         """
-        return int(1.0 / self.delta_u) + 1
+        ss = math.floor((1.0 / self.delta_u) + 0.5)
+        return int(ss)
 
     @sample_size_u.setter
     def sample_size_u(self, value):
@@ -2554,7 +2559,7 @@
         stop_u = self.knotvector_u[-(self.degree_u + 1)]
 
         # Set delta values
-        self.delta_u = (stop_u - start_u) / float(value - 1)
+        self.delta_u = (stop_u - start_u) / float(value)
 
     @property
     def sample_size_v(self):
@@ -2569,7 +2574,8 @@
         :setter: Sets sample size for the v-direction
         :type: int
         """
-        return int(1.0 / self.delta_v) + 1
+        ss = math.floor((1.0 / self.delta_v) + 0.5)
+        return int(ss)
 
     @sample_size_v.setter
     def sample_size_v(self, value):
@@ -2585,7 +2591,7 @@
         stop_v = self.knotvector_v[-(self.degree_v + 1)]
 
         # Set delta values
-        self.delta_v = (stop_v - start_v) / float(value - 1)
+        self.delta_v = (stop_v - start_v) / float(value)
 
     @property
     def sample_size_w(self):
@@ -2600,7 +2606,8 @@
         :setter: Sets sample size for the w-direction
         :type: int
         """
-        return int(1.0 / self.delta_w) + 1
+        ss = math.floor((1.0 / self.delta_w) + 0.5)
+        return int(ss)
 
     @sample_size_w.setter
     def sample_size_w(self, value):
@@ -2616,7 +2623,7 @@
         stop_w = self.knotvector_w[-(self.degree_w + 1)]
 
         # Set delta values
-        self.delta_w = (stop_w - start_w) / float(value - 1)
+        self.delta_w = (stop_w - start_w) / float(value)
 
     @property
     def sample_size(self):
@@ -2637,10 +2644,10 @@
         :setter: Sets sample size value for both u-, v- and w-directions
         :type: int
         """
-        sample_size_u = int(1.0 / self.delta_u) + 1
-        sample_size_v = int(1.0 / self.delta_v) + 1
-        sample_size_w = int(1.0 / self.delta_w) + 1
-        return sample_size_u, sample_size_v, sample_size_w
+        sample_size_u = math.floor((1.0 / self.delta_u) + 0.5)
+        sample_size_v = math.floor((1.0 / self.delta_v) + 0.5)
+        sample_size_w = math.floor((1.0 / self.delta_w) + 0.5)
+        return int(sample_size_u), int(sample_size_v), int(sample_size_w)
 
     @sample_size.setter
     def sample_size(self, value):
@@ -2659,9 +2666,9 @@
         stop_w = self.knotvector_w[-(self.degree_w + 1)]
 
         # Set delta values
-        self.delta_u = (stop_u - start_u) / float(value - 1)
-        self.delta_v = (stop_v - start_v) / float(value - 1)
-        self.delta_w = (stop_w - start_w) / float(value - 1)
+        self.delta_u = (stop_u - start_u) / float(value)
+        self.delta_v = (stop_v - start_v) / float(value)
+        self.delta_w = (stop_w - start_w) / float(value)
 
     @property
     def delta_u(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/geomdl/operations.py 
new/NURBS-Python-5.3.0/geomdl/operations.py
--- old/NURBS-Python-5.2.10/geomdl/operations.py        2020-07-08 
02:17:17.000000000 +0200
+++ new/NURBS-Python-5.3.0/geomdl/operations.py 2020-08-06 08:05:59.000000000 
+0200
@@ -1421,10 +1421,7 @@
     """
     normalize = kwargs.get('normalize', True)
     if isinstance(obj, abstract.Curve):
-        if isinstance(params, (list, tuple)):
-            return ops.normal_curve_single_list(obj, params, normalize)
-        else:
-            return ops.normal_curve_single(obj, params, normalize)
+        raise GeomdlException("Not implemented for curves")
     if isinstance(obj, abstract.Surface):
         if isinstance(params[0], float):
             return ops.normal_surface_single(obj, params, normalize)
@@ -1433,30 +1430,6 @@
 
 
 @export
-def binormal(obj, params, **kwargs):
-    """ Evaluates the binormal vector of the curves or surfaces at the input 
parameter values.
-
-    This function is designed to evaluate binormal vectors of the B-Spline and 
NURBS shapes at single or
-    multiple parameter positions.
-
-    :param obj: input shape
-    :type obj: abstract.Curve or abstract.Surface
-    :param params: parameters
-    :type params: float, list or tuple
-    :return: a list containing "point" and "vector" pairs
-    :rtype: tuple
-    """
-    normalize = kwargs.get('normalize', True)
-    if isinstance(obj, abstract.Curve):
-        if isinstance(params, (list, tuple)):
-            return ops.binormal_curve_single_list(obj, params, normalize)
-        else:
-            return ops.binormal_curve_single(obj, params, normalize)
-    if isinstance(obj, abstract.Surface):
-        raise GeomdlException("Binormal vector evaluation for the surfaces is 
not implemented!")
-
-
-@export
 def translate(obj, vec, **kwargs):
     """ Translates curves, surface or volumes by the input vector.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NURBS-Python-5.2.10/tests/test_curve.py 
new/NURBS-Python-5.3.0/tests/test_curve.py
--- old/NURBS-Python-5.2.10/tests/test_curve.py 2020-07-08 02:17:17.000000000 
+0200
+++ new/NURBS-Python-5.3.0/tests/test_curve.py  2020-08-06 08:05:59.000000000 
+0200
@@ -169,30 +169,6 @@
     assert spline_curve.ctrlpts_size == ctrlpts_size_new
 
 
-def test_bspline_curve2d_tn_vector(spline_curve):
-    angle = 90.0
-    t = spline_curve.tangent(0.5)
-    n = spline_curve.normal(0.5)
-    res = linalg.vector_angle_between(t[1], n[1])
-    assert angle == res
-
-
-def test_bspline_curve2d_tb_vector(spline_curve):
-    angle = 90.0
-    t = spline_curve.tangent(0.5)
-    b = spline_curve.binormal(0.5)
-    res = linalg.vector_angle_between(t[1], b[1])
-    assert angle == res
-
-
-def test_bspline_curve2d_nb_vector(spline_curve):
-    angle = 90.0
-    b = spline_curve.binormal(0.5)
-    n = spline_curve.normal(0.5)
-    res = linalg.vector_angle_between(b[1], n[1])
-    assert angle == res
-
-
 @fixture
 def spline_curve3d(spline_curve):
     curve3d = operations.add_dimension(spline_curve, offset=1.0)
@@ -204,30 +180,6 @@
     assert spline_curve3d.dimension == 3
 
 
-def test_bspline_curve3d_tn_vector(spline_curve3d):
-    angle = 90.0
-    t = spline_curve3d.tangent(0.5)
-    n = spline_curve3d.normal(0.5)
-    res = linalg.vector_angle_between(t[1], n[1])
-    assert angle == res
-
-
-def test_bspline_curve3d_tb_vector(spline_curve3d):
-    angle = 90.0
-    t = spline_curve3d.tangent(0.5)
-    b = spline_curve3d.binormal(0.5)
-    res = linalg.vector_angle_between(t[1], b[1])
-    assert angle == res
-
-
-def test_bspline_curve3d_nb_vector(spline_curve3d):
-    angle = 90.0
-    b = spline_curve3d.binormal(0.5)
-    n = spline_curve3d.normal(0.5)
-    res = linalg.vector_angle_between(b[1], n[1])
-    assert angle == res
-
-
 @fixture
 def nurbs_curve(spline_curve):
     curve = convert.bspline_to_nurbs(spline_curve)
_______________________________________________
openSUSE Commits mailing list -- commit@lists.opensuse.org
To unsubscribe, email commit-le...@lists.opensuse.org
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/commit@lists.opensuse.org

Reply via email to