Fix sorting key for rdefs in schema viewer
With changeset 234ca3cbbb46, clicking in the schema of an entity with
cubicweb in py3 on "vue en boite" will probably result in an infinite
spinner (which implies cw > 3.26)
What happened ?
This "vue en boite" used to work at least until...
hg diff -c a8c1ea390400 cubicweb/schema.py
@@ -993,10 +992,6 @@ class CubicWebRelationSchema(PermissionM
return False
return True
- @deprecated('use .rdef(subjtype, objtype).role_cardinality(role)')
- def cardinality(self, subjtype, objtype, target):
- return self.rdef(subjtype, objtype).role_cardinality(target)
-
class CubicWebSchema(Schema):
"""set of entities and relations schema defining the possible data sets
But, wait ...
If I open a shell on an instance of cw 3.24 something seems off
>>> list(schema['CWUniqueTogetherConstraint'].relation_definitions())[0][0].cardinality
# <bound method CubicWebRelationSchema.wrapped of <constraint_of [CWUniqueTogetherConstraint,CWEType]>>
We have been sorting on a method the whole time ? Is it possible what
were the effects ?
1) We cannot sort function can't we ?
>>> def adder(i): return lambda x: x+i
>>> sorted(map(adder,range(10)))
[<function __main__.<lambda>>,
<function __main__.<lambda>>,
...
Yes we can.
2) what does it means.
>>> { adder(1) : 1 }
Out[19]: {<function __main__.<lambda>>: 1}
In fact the function object as a __hash__ method (which is practical for making
memoizers (cache)), and return truly random results (pseudo random).
My take on this patch is relations have NEVER been sorted by cardinality.
No one never ever noticed. Hence, I propose to not fix a bug that never was
reported.
Source: cubicweb
Section: web
Priority: optional
Maintainer: Logilab S.A. <contact@logilab.fr>
Uploaders: Sylvain Thenault <sylvain.thenault@logilab.fr>,
David Douard <david.douard@logilab.fr>,
Build-Depends:
debhelper (>= 9),
dh-python,
dh-systemd,
python-all,
python-setuptools,
python-six (>= 1.4.0),
python-docutils,
python-sphinx,
python-logilab-common (>= 1.4.0),
python-logilab-mtconverter,
python-markdown,
python-tz,
python-rql (>= 0.34.0),
python-yams (>= 0.45.0),
python-lxml,
python-setuptools,
python-pyramid,
python-pyramid-multiauth,
python-waitress,
python-passlib,
python-repoze.lru,
python-wsgicors,
python-filelock,
sphinx-common,
Standards-Version: 3.9.6
Homepage: https://www.cubicweb.org
X-Python-Version: >= 2.7
Package: python-cubicweb
Architecture: all
Depends:
${misc:Depends},
${python:Depends},
python-six (>= 1.4.0),
python-logilab-mtconverter (>= 0.8.0),
python-logilab-common (>= 1.4.0),
python-logilab-database (>= 1.15.0),
python-yams (>= 0.45.0),
python-rql (>= 0.34.0),
python-lxml,
python-markdown,
python-passlib,
python-tz,
graphviz,
python-filelock,
gettext,
Recommends:
cubicweb-ctl (= ${source:Version}),
python-cubicweb-postgresql-support (= ${source:Version})
| sqlite3,
python-cubicweb-pyramid (= ${source:Version}),
# common recommends
python-simpletal (>= 4.0),
python-pycryptodome,
# web recommends (mostly)
python-docutils (>= 0.6),
python-vobject,
fckeditor,
python-fyzz,
python-imaging,
python-rdflib,
python-werkzeug,
# dev recommends
python-pysqlite2,
Suggests:
python-zmq,
python-cwclientlib (>= 0.4.0),
python-cubicweb-documentation (= ${source:Version}),
w3c-dtd-xhtml,
xvfb,
Replaces:
cubicweb (<< 3.24.0-1~),
cubicweb-server (<< 3.24.0-1~),
cubicweb-web (<< 3.24.0-1~),
cubicweb-core,
cubicweb-common (<< 3.24.0-1~),
Breaks:
cubicweb (<< 3.24.0-1~),
cubicweb-server (<< 3.24.0-1~),
cubicweb-inlinedit (<< 1.1.1),
cubicweb-bootstrap (<< 0.6.6),
cubicweb-folder (<< 1.10.0),
cubicweb-web (<< 3.24.0-1~),
cubicweb-comment (<< 1.9.1),
cubicweb-person (<< 1.8.0),
cubicweb-geocoding (<< 0.2.0),
cubicweb-invoice (<< 0.6.1),
cubicweb-mercurial-server (<< 0.4.2),
cubicweb-forgotpwd (<< 0.4.3),
cubicweb-registration (<< 0.4.3),
cubicweb-vcsfile (<< 1.15.0),
cubicweb-bootstrap (<< 0.6),
cubicweb-common (<< 3.24.0-1~),
Provides:
cubicweb,
cubicweb-server,
cubicweb-web-frontend,
cubicweb-web,
cubicweb-common,
Conflicts:
cubicweb-multisources,
cubicweb-core,
Description: the complete CubicWeb framework
CubicWeb is a semantic web application framework.
.
This metapackage will install all the components you need to run cubicweb on a
single machine. You can also deploy cubicweb by running the different process
on different computers, in which case you need to install the corresponding
packages on the different hosts.
Package: python-cubicweb-postgresql-support
Architecture: all
# postgresql-client packages for backup/restore of non local database
Replaces: cubicweb-postgresql-support (<< 3.24.0-1~)
Breaks: cubicweb-postgresql-support (<< 3.24.0-1~)
Provides: cubicweb-postgresql-support
Depends:
${misc:Depends},
${python:Depends},
python-psycopg2,
postgresql-client
Description: postgres support for the CubicWeb framework
CubicWeb is a semantic web application framework.
.
This virtual package provides dependencies to use PostgreSQL for the
cubicweb repository.
Package: python-cubicweb-pyramid
Architecture: all
Depends:
python-cubicweb (= ${source:Version}),
python-pyramid (>= 1.5.0),
python-pyramid-multiauth,
python-waitress (>= 0.8.9),
python-wsgicors,
python-repoze.lru,
Recommends:
python-pyramid-debugtoolbar
Conflicts:
pyramid-cubicweb
Replaces:
pyramid-cubicweb
Description: meta package to use Pyramid as HTTP server for CubicWeb
Provides pyramid extensions to load a CubicWeb instance and serve it through
the pyramid stack.
Package: cubicweb-ctl
Architecture: all
Depends:
${misc:Depends},
${python:Depends},
python-cubicweb (= ${source:Version})
Description: tool to manage the CubicWeb framework
CubicWeb is a semantic web application framework.
.
This package provides a control script to manage (create, upgrade, start,
stop, etc) CubicWeb applications. It also include the init.d script
to automatically start and stop CubicWeb applications on boot or shutdown.
Package: python-cubicweb-documentation
Architecture: all
Section: doc
Replaces: cubicweb-documentation (<< 3.24.0-1~)
Breaks: cubicweb-documentation (<< 3.24.0-1~)
Provides: cubicweb-documentation
Depends:
${misc:Depends},
${sphinxdoc:Depends},
Recommends:
doc-base
Description: documentation for the CubicWeb framework
CubicWeb is a semantic web application framework.
.
This package provides the system's documentation.
# Transitional packages after renaming of (most) binary packages
Package: cubicweb
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-server
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-postgresql-support
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb-postgresql-support, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-web
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-common
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-dev
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.
Package: cubicweb-documentation
Architecture: all
Priority: extra
Section: oldlibs
Depends:
python-cubicweb-documentation, ${misc:Depends}
Description: transitional package
This is a transitional package. It can safely be removed.