Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-skyfield for openSUSE:Factory 
checked in at 2022-08-11 18:32:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-skyfield (Old)
 and      /work/SRC/openSUSE:Factory/.python-skyfield.new.1521 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-skyfield"

Thu Aug 11 18:32:55 2022 rev:16 rq:994500 version:1.43.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-skyfield/python-skyfield.changes  
2022-04-20 16:57:54.174655156 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-skyfield.new.1521/python-skyfield.changes    
    2022-08-11 18:33:13.374206585 +0200
@@ -1,0 +2,60 @@
+Thu Aug 11 09:14:22 UTC 2022 - Ben Greiner <c...@bnavigator.de>
+
+- Update to v1.43.1
+  * An attempt at overly clever scripting resulted in a Skyfield
+    1.43 release without a setup.py in its .tar.gz; within an hour,
+    a Python 2.7 user had reported that Skyfield could no longer
+    install. This release is identical to 1.43 but (hopefully)
+    installs correctly for everyone!
+- Changelog v1.43
+  * Fixed planetary_magnitude() so it works for Saturn even when
+    the time is an array rather than a single time; also, improved
+    its calculation slightly with respect to Uranus. #739
+  * Improved load_comets_dataframe() so that parsing CometEls.txt
+    with the most recent version of Pandas doesn???t stumble over the
+    commas in the final field of (for example) Halley???s Comet and
+    give the error ParserError: Error tokenizing data. C error:
+    Expected 12 fields???saw 13. #707
+- Changelog v1.42
+  * Added two new position methods phase_angle() and
+    fraction_illuminated() that, given an illuminator (usually the
+    Sun) as their argument, compute whether the observer is looking
+    at the bright side or the dark side of the target body. They
+    replace a pair of old functions in the almanac module.
+  * The almanac routine moon_nodes() would sometimes skip nodes
+    that were closer together than 14.0 days. It has been tightened
+    down and should now detect all lunar nodes. #662
+  * Time objects now feature a to_astropy() method.
+  * The position method to_skycoord() now sets the frame attribute
+    of the sky coordinate it returns, and for now only supports
+    barycentric and geocentric positions. #577
+- Changelog v1.41
+  * Times now support arithmetic: you can add or subtract from a
+    time either a number representing days of Terrestrial Time (TT)
+    or a Python timedelta which Skyfield interprets as TT days and
+    seconds. #568
+  * Fixed the .itrs_xyz vector of the geographic position returned
+    by the subpoint_of() method. #673
+  * Skyfield now uses HTTPS instead of FTP to download JPL
+    ephemeris files like de421.bsp. This does risk raising an error
+    for users whose machines have out-of-date root certificates.
+    But it protects the connection from outside tampering, and will
+    keep working if the ssd.jpl.nasa.gov FTP service is ever shut
+    down ??? as happened earlier this year to FTP on NASA???s
+    cddis.nasa.gov server. #666
+- Changelog v1.40
+  * Extended the planetary_magnitude() routine to work with all the
+    major planets, which upgrades it from a prototype feature to a
+    production feature of Skyfield.
+  * The subpoint() method has been deprecated, because users
+    reported that its name was a poor match for its behavior. Four
+    new methods have replaced it: latlon_of(), height_of(),
+    geographic_position_of(), and subpoint_of(). #644
+  * Added a timescale method linspace(). #617
+  * The oppositions_conjunctions() routine, which was originally
+    designed only for planets, can now also handle the Moon (which
+    moves from opposition to conjunction much faster).
+- Update assay to 264.bb62d1f: better pickling handling
+- Update finals200A.all data
+
+-------------------------------------------------------------------

Old:
----
  assay-master-259.d61a16e.tar.gz
  skyfield-1.39.tar.gz

New:
----
  assay-master-264.bb62d1f.tar.gz
  skyfield-1.43.1.tar.gz

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

Other differences:
------------------
++++++ python-skyfield.spec ++++++
--- /var/tmp/diff_new_pack.9Jnn8Q/_old  2022-08-11 18:33:14.510204842 +0200
+++ /var/tmp/diff_new_pack.9Jnn8Q/_new  2022-08-11 18:33:14.518204830 +0200
@@ -17,13 +17,11 @@
 
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%define assaycommit d61a16e060c50f9c1a97df84ad9960825031915e
-%define assayver    259.d61a16e
+%define assaycommit bb62d1f7d51d798b05a88045fff3a2ff92c299c3
+%define assayver    264.bb62d1f
 %define skip_python2 1
-# current astropy in TW requires python >= 3.7
-%define skip_python36 1
 Name:           python-skyfield
-Version:        1.39
+Version:        1.43.1
 Release:        0
 Summary:        Elegant astronomy for Python
 License:        MIT
@@ -33,13 +31,13 @@
 Source1:        
https://naif.jpl.nasa.gov/pub/naif/generic_kernels/fk/satellites/moon_080317.tf
 Source2:        
https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/moon_pa_de421_1900-2050.bpc
 Source3:        
https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/a_old_versions/pck00008.tpc
-Source4:        ftp://ssd.jpl.nasa.gov/pub/eph/planets/bsp/de405.bsp
-Source5:        ftp://ssd.jpl.nasa.gov/pub/eph/planets/bsp/de421.bsp
+Source4:        https://ssd.jpl.nasa.gov/ftp/eph/planets/bsp/de405.bsp
+Source5:        https://ssd.jpl.nasa.gov/ftp/eph/planets/bsp/de421.bsp
 # use generate-hipparcos.sh to download and truncate the test data
 Source6:        hip_main.dat.gz
 Source7:        https://datacenter.iers.org/data/9/finals2000A.all
 # Original with invalid https certificate or http url: 
http://astro.ukho.gov.uk/nao/lvm/Table-S15.2020.txt
-Source8:        
https://raw.githubusercontent.com/skyfielders/python-skyfield/master/Table-S15.2020.txt
+Source8:        
https://github.com/skyfielders/python-skyfield/raw/%{version}/Table-S15.2020.txt
 Source97:       generate-hipparcos.sh
 # upstreams custom test runner assay: gh#skyfielders/python-skyfield#405
 Source98:       
https://github.com/brandon-rhodes/assay/archive/%{assaycommit}.tar.gz#/assay-master-%{assayver}.tar.gz
@@ -84,20 +82,17 @@
 sed -i 's/assert abs(distance.au - 1) < 1e-16/assert abs(distance.au - 1) < 
1e-15/' skyfield/tests/test_positions.py
 
 %build
+export SKYFIELD_USE_SETUPTOOLS=1
 %python_build
 
 %install
+export SKYFIELD_USE_SETUPTOOLS=1
 %python_install
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
 %check
 export PYTHONPATH="../assay-%{assaycommit}"
-%{python_expand # run assay up to 3 times in case of flaky pickling errors
-failed=0
-for i in {1..3}; do
-  $python -m assay --batch skyfield.tests && break || [ $((++failed)) -lt 3 ]
-done
-}
+%python_exec -m assay --batch skyfield.tests
 
 %files %{python_files}
 %doc README.rst

++++++ assay-master-259.d61a16e.tar.gz -> assay-master-264.bb62d1f.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/.gitignore 
new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/.gitignore
--- old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/.gitignore       
2021-04-13 15:57:54.000000000 +0200
+++ new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/.gitignore       
2022-01-19 11:26:53.000000000 +0100
@@ -1,2 +1,4 @@
-*.egg-info
-htmlcov
+/*.egg-info
+/MANIFEST
+/dist/
+/htmlcov/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/assertion.py 
new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/assertion.py
--- old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/assertion.py       
2021-04-13 15:57:54.000000000 +0200
+++ new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/assertion.py       
2022-01-19 11:26:53.000000000 +0100
@@ -97,7 +97,7 @@
         op.pop_top,             # stack: ...
         ])
 
-else:
+elif _python_version < (3,9):
 
     assert_pattern_text = assemble_pattern([
         op.compare_op, b'(.)',
@@ -105,14 +105,31 @@
         op.pop_jump_if_true, b'.',
         op.load_global, b'(.)',
         op.raise_varargs, 1,
-        ])
+    ])
 
     replacement = assemble_replacement([
         op.load_const, b'%%',   # stack: ... op1 op2 function
         op.rot_three, 0,        # stack: ... function op1 op2
         op.call_function, 2,    # stack: ... return_value
         op.pop_top, 0,          # stack: ...
-        ])
+    ])
+
+else:
+
+    assert_pattern_text = assemble_pattern([
+        op.compare_op, b'(.)',
+        b'(?:', op.extended_arg, b'.)?',
+        op.pop_jump_if_true, b'.',
+        op.load_assertion_error, b'.',
+        op.raise_varargs, 1,
+    ])
+
+    replacement = assemble_replacement([
+        op.load_const, b'%%',   # stack: ... op1 op2 function
+        op.rot_three, 0,        # stack: ... function op1 op2
+        op.call_function, 2,    # stack: ... return_value
+        op.pop_top, 0,          # stack: ...
+    ])
 
 # Note that "re.S" is crucial when compiling this pattern, as a byte we
 # are trying to match with "." might happen to have the numeric value of
@@ -122,7 +139,8 @@
 def rewrite_asserts_in(function):
 
     def replace(match):
-        match.group(2) # TODO: make sure this is the right symbol
+        # TODO: if there's a second group in the match, should we verify
+        # that it really loads `AssertionError`?
         compare_op = match.group(1)
         if _python_version <= (3,5):
             msb, lsb = divmod(offset + ord(compare_op), 256)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/fixes.py 
new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/fixes.py
--- old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/fixes.py   
1970-01-01 01:00:00.000000000 +0100
+++ new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/fixes.py   
2022-01-19 11:26:53.000000000 +0100
@@ -0,0 +1,41 @@
+"""Workarounds for Python 3."""
+
+import sys
+_python3 = sys.version_info >= (3,)
+
+# We are extremely fortunate that Mercurial ran into this issue before
+# assay did, as they figured out both how to reproduce the problem and
+# how to fix it!
+
+# https://phab.mercurial-scm.org/rHG12491abf93bd87b057cb6826e36606afa1cee88a
+# https://phab.mercurial-scm.org/rHGc2bf211c74bf97be0a24e2446b75867cb4f588ee
+
+# We are less fortunate that Mercurial's license isn't compatible with
+# ours, as we must re-implement this rather than use their code.  But
+# requiring us to re-implement is, after all, their right under the
+# current copyright regime.
+
+if _python3:
+    class _accumulating_reader:
+        def __init__(self, pipe):
+            self._read = pipe.read
+            self.readline = pipe.readline
+            self.close = pipe.close
+
+        def read(self, size=-1):
+            read = self._read
+            if size < 0:
+                return read(-1)
+            pieces = []
+            while size:
+                data = read(size)
+                n = len(data)
+                if not n:
+                    break
+                size -= n
+                pieces.append(data)
+            return b''.join(pieces)
+
+else:
+    def _accumulating_reader(pipe):
+        return pipe
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/samples.py 
new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/samples.py
--- old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/samples.py 
2021-04-13 15:57:54.000000000 +0200
+++ new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/samples.py 
2022-01-19 11:26:53.000000000 +0100
@@ -4,6 +4,9 @@
 
 flags = set()
 
+def mul(a, b):
+    return a * b
+
 def test_passing():
     pass
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/tests.py 
new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/tests.py
--- old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/tests.py   
2021-04-13 15:57:54.000000000 +0200
+++ new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/tests.py   
2022-01-19 11:26:53.000000000 +0100
@@ -15,7 +15,10 @@
 from .discovery import interpret_argument
 from .importation import improve_order, list_module_paths
 from .runner import run_tests_of, run_test
+from .samples import mul
+from .worker import Worker
 
+_python3 = sys.version_info >= (3,)
 _python33 = sys.version_info >= (3, 3)
 _python38 = sys.version_info >= (3, 8)
 
@@ -487,6 +490,45 @@
         self.assertEqual(improve_order(events),
                          ['A', 'X', 'B', 'C', 'Y', 'Z', 'D', 'E'])
 
+PRETEND_PIPE_LIMIT = 256
+
+class BlockReader(object):
+    """Challenge: can we survive a pipe that splits long data into blocks?"""
+    def __init__(self, file):
+        self.file = file
+        self.close = file.close
+
+    def read(self, n=-1):
+        n = min(n, PRETEND_PIPE_LIMIT)
+        return self.file.read(n)
+
+    def readline(self, n=-1):
+        raise NotImplementedError()
+
+class WorkerTests(unittest.TestCase):
+    def test_worker_can_call_simple_function(self):
+        w = Worker()
+        try:
+            answer = w.call(mul, 3, 4)
+            self.assertEqual(answer, 12)
+        finally:
+            w.close()
+
+    def test_worker_survive_narrow_pipe(self):
+        # This simulates a difficult-to-reproduce problem: until we
+        # enhanced the Worker, on Python 3 on GitHub Actions the main
+        # process would sometimes raise "_pickle.UnpicklingError: pickle
+        # data was truncated".
+        if not _python3:
+            return
+        n = 5 * PRETEND_PIPE_LIMIT
+        w = Worker()
+        w.from_worker = BlockReader(w.from_worker)
+        try:
+            answer = w.call(mul, 'a', n)
+        finally:
+            w.close()
+        self.assertEqual(answer, 'a' * n)
 
 if __name__ == '__main__':
     unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/unix.py 
new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/unix.py
--- old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/unix.py    
2021-04-13 15:57:54.000000000 +0200
+++ new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/unix.py    
2022-01-19 11:26:53.000000000 +0100
@@ -63,7 +63,9 @@
     except OSError:
         pass
     fcntl.fcntl(fd, fcntl.F_SETFL, 0)
-    return os.fdopen(os.dup(fd), fileobj.mode, bufsize)
+    new_fd = os.dup(fd)
+    fileobj.close()
+    return os.fdopen(new_fd, fileobj.mode, bufsize)
 
 def kill_dash_9(pid):
     """Kill a process with a signal that cannot be caught or ignored."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/worker.py 
new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/worker.py
--- old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/assay/worker.py  
2021-04-13 15:57:54.000000000 +0200
+++ new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/assay/worker.py  
2022-01-19 11:26:53.000000000 +0100
@@ -3,6 +3,7 @@
 import os
 import sys
 from . import unix
+from .fixes import _accumulating_reader
 from types import GeneratorType
 
 _python3 = sys.version_info >= (3,)
@@ -74,7 +75,7 @@
         """Run a function in the worker process and return its result."""
         pickle.dump((function, args, kw), self.to_worker)
         self.to_worker.flush()
-        return pickle.load(self.from_worker)
+        return pickle.load(_accumulating_reader(self.from_worker))
 
     def start(self, generator, *args, **kw):
         """Start a generator in the worker process."""
@@ -83,7 +84,7 @@
 
     def next(self):
         """Return the next item from the generator given to `start()`."""
-        return pickle.load(self.from_worker)
+        return pickle.load(_accumulating_reader(self.from_worker))
 
     def fileno(self):
         """Return the incoming file descriptor, for `epoll()` objects."""
@@ -108,6 +109,15 @@
 def worker_process(from_parent, to_parent, sync_to_parent):
     """Run functions piped to us from the parent process.
 
+    This is the entire control loop of an assay worker process, which is
+    launched when this module is run with "-m" by the "Worker" class.
+    It listens to a pipe over which it is given a series of functions to
+    invoke, and sends back their return values.  Sometimes the function
+    is `fork()`, in which case a worker child process is launched; in
+    that case, the child takes control of the conversation, with the
+    parent waiting idle and only resuming control of the conversation
+    once the child is finished.
+
     Both `to_parent` and `from_parent` should be integer file
     descriptors of the pipes connecting us to the parent process.
 
@@ -116,7 +126,7 @@
     from_parent = os.fdopen(from_parent, 'rb')
 
     while True:
-        function, args, kw = pickle.load(from_parent)
+        function, args, kw = pickle.load(_accumulating_reader(from_parent))
         result = function(*args, **kw)
         if function is os.fork:
             if result:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/setup.py 
new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/setup.py
--- old/assay-d61a16e060c50f9c1a97df84ad9960825031915e/setup.py 2021-04-13 
15:57:54.000000000 +0200
+++ new/assay-bb62d1f7d51d798b05a88045fff3a2ff92c299c3/setup.py 2022-01-19 
11:26:53.000000000 +0100
@@ -17,7 +17,12 @@
         'Programming Language :: Python :: 3.2',
         'Programming Language :: Python :: 3.3',
         'Programming Language :: Python :: 3.4',
-        ],
+        'Programming Language :: Python :: 3.5',
+        'Programming Language :: Python :: 3.6',
+        'Programming Language :: Python :: 3.7',
+        'Programming Language :: Python :: 3.8',
+        'Programming Language :: Python :: 3.9',
+    ],
     packages=['assay'],
     entry_points = {
         'console_scripts': ['assay=assay.command:main'],



++++++ finals2000A.all ++++++
++++ 2089 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/python-skyfield/finals2000A.all
++++ and /work/SRC/openSUSE:Factory/.python-skyfield.new.1521/finals2000A.all



++++++ skyfield-1.39.tar.gz -> skyfield-1.43.1.tar.gz ++++++
++++ 5134 lines of diff (skipped)

Reply via email to