flatsurf / sage-flatsurf

Flat surfaces in Sage
https://flatsurf.github.io/sage-flatsurf/
GNU General Public License v2.0
10 stars 11 forks source link

Action of Veech group on homology #295

Closed saraedum closed 2 months ago

saraedum commented 2 months ago

Fixes #225, mostly cherry-picking from #211 which got a bit too big to be merged in one go.

Checklist

saraedum commented 2 months ago

@videlec surface dynamics seems to have trouble with SageMath 10.3:

sage: from surface_dynamics import OrigamiDatabase
sage: D = OrigamiDatabase()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[4], line 1
----> 1 D = OrigamiDatabase()

File ~/proj/umamba/envs/sage-flatsurf-build/lib/python3.10/site-packages/surface_dynamics/flat_surfaces/origamis/origami_database.py:1407, in OrigamiDatabase.__init__(self, dblocation, read_only, force_creation, old_version)
   1401     SQLDatabase.__init__(self,
   1402             dblocation,
   1403             read_only=read_only,
   1404             skeleton=skeleton)
   1406 else:
-> 1407     SQLDatabase.__init__(self, dblocation, read_only=read_only)
   1408     if not are_skeleton_equal(self.get_skeleton(), skeleton):
   1409         k0 = set(self.get_skeleton()['origamis'].keys())

File ~/proj/umamba/envs/sage-flatsurf-build/lib/python3.10/site-packages/surface_dynamics/misc/sql_db.py:959, in SQLDatabase.__init__(self, filename, read_only, skeleton)
    956 self.__connection__.create_function("regexp", 2, regexp)
    958 # construct skeleton (from provided database)
--> 959 self.__skeleton__ = construct_skeleton(self)
    961 # add bones from new skeleton to database,
    962 # without changing existing structure
    963 if skeleton is not None and not read_only:

File ~/proj/umamba/envs/sage-flatsurf-build/lib/python3.10/site-packages/surface_dynamics/misc/sql_db.py:251, in construct_skeleton(database)
    248 for col in exe2.fetchall():
    249     if col[1].find('sqlite') == -1:
    250         if database.__dblocation__ == \
--> 251                 os.path.join(GRAPHS_DATA_DIR,'graphs.db'):
    252             name = col[1]
    253         else:

File ~/proj/umamba/envs/sage-flatsurf-build/lib/python3.10/posixpath.py:76, in join(a, *p)
     71 def join(a, *p):
     72     """Join two or more pathname components, inserting '/' as needed.
     73     If any component is an absolute path, all previous path components
     74     will be discarded.  An empty last part will result in a path that
     75     ends with a separator."""
---> 76     a = os.fspath(a)
     77     sep = _get_sep(a)
     78     path = a

TypeError: expected str, bytes or os.PathLike object, not NoneType
saraedum commented 2 months ago

This needs

github-actions[bot] commented 2 months ago

Documentation preview for this PR is ready! :tada: Built with commit: 24674f10ae7ad2c51c2fd51a989066b974c5e2c0