Skip to content

Conversation

gabor-boros
Copy link
Member

@gabor-boros gabor-boros commented Jun 21, 2022

Reason for the change

The Python driver is outdated, and lagging behind.

Description

This PR covers the work of moving from Python 2 to Python 3, doing a major refactoring on the code and bumps to it support upcoming RethinkDB 2.5.0 features, shuch as: format.

Although a major refactoring was done as part of this PR, some features are still left to do. Beside lacking temporary features (like supporting dump, export, etc, which should live as a separate tool), this PR is not complete yet.

To see what's left, check the "Checklist" section.

Code examples

Calling the new format command

>>> import rethinkdb as r
>>> conn = r.connect()
>>> r.format(r"Hello {name}, I can count to 1..2..{count}.", {r"name": "Bob", "count": 3, }).run(conn)
'Hello Bob, I can count to 1..2..3.'

Calling rethinkdb management commands

# Calling the dump command
$ rethinkdb-dump
# ... or ...
$ rethinkdb dump

# Calling the export command
$ rethinkdb-export
# ... or ...
$ rethinkdb export

# Calling the import command
$ rethinkdb-import
# ... or ...
$ rethinkdb import

# Calling the index_rebuild command
$ rethinkdb-index_rebuild
# ... or ...
$ rethinkdb index_rebuild

# Calling the repl command
$ rethinkdb-repl
# ... or ...
$ rethinkdb repl

# Calling the restore command
$ rethinkdb-restore
# ... or ...
$ rethinkdb restore

Checklist

  • Port asyncio_net
  • Port gevent_net
  • Port tornado_net
  • Port trio_net
  • Port twisted_net
  • Regenerate docs.py
  • Support dump commands
  • Support export commands
  • Support import commands
  • Support index_rebuild commands
  • Support restore commands
  • Revisit the CHANGELOG.rst and extend it
  • I have read and agreed to the RethinkDB Contributor License Agreement

References

ReQL Polyglot test results
test/rql_test/test-runner --interpreter py3.8 polyglot -j8
/Users/gabor/Developer/rethinkdb/rethinkdb/test/rql_test/../common/utils.py:63: UserWarning: Supplied JRuby driver path (RUBY_DRIVER) was not valid: /Users/gabor/Developer/rethinkdb/rethinkdb/build/drivers/ruby/lib
  warnings.warn('Supplied %s driver path (%s) was not valid: %s' % (name, info['envName'], os.environ[info['envName']]))
Using rethinkdb binary /Users/gabor/Developer/rethinkdb/rethinkdb/build/debug_clang/rethinkdb
	Python 3.8 interpreter: /Users/gabor/.pyenv/versions/rethinkdb-python/bin/python, driver: /Users/gabor/Developer/rethinkdb/rethinkdb-python/rethinkdb
== Starting: polyglot/changefeeds/include_states.py3.8 (T+ 1.3 sec)
== Starting: polyglot/aggregation.py3.8 (T+ 1.8 sec)
== Starting: polyglot/changefeeds/point.py3.8 (T+ 2.8 sec)
== Starting: polyglot/arity.py3.8 (T+ 4.7 sec)
== Starting: polyglot/changefeeds/sindex.py3.8 (T+ 6.2 sec)
== Passed: polyglot/changefeeds/include_states.py3.8 in 5.4 sec + 0.0 sec setup (T+ 7.4 sec)
== Starting: polyglot/changefeeds/table.py3.8 (T+ 7.7 sec)
== Starting: polyglot/changefeeds/edge.py3.8 (T+ 8.4 sec)
== Starting: polyglot/changefeeds/idxcopy.py3.8 (T+ 12.4 sec)
== Passed: polyglot/arity.py3.8 in 7.8 sec + 0.3 sec setup (T+ 14.3 sec)
== Starting: polyglot/control.py3.8 (T+ 14.8 sec)
== Passed: polyglot/changefeeds/point.py3.8 in 11.0 sec + 0.2 sec setup (T+ 15.5 sec)
== Starting: polyglot/changefeeds/squash.py3.8 (T+ 15.6 sec)
== Passed: polyglot/changefeeds/sindex.py3.8 in 8.4 sec + 0.3 sec setup (T+ 15.9 sec)
== Starting: polyglot/datum/binary.py3.8 (T+ 16.4 sec)
== Passed: polyglot/datum/binary.py3.8 in 0.8 sec + 0.8 sec setup (T+ 19.4 sec)
== Starting: polyglot/datum/bool.py3.8 (T+ 19.5 sec)
== Starting: polyglot/datum/array.py3.8 (T+ 20.8 sec)
== Passed: polyglot/datum/bool.py3.8 in 0.2 sec + 0.6 sec setup (T+ 21.6 sec)
== Starting: polyglot/datum/null.py3.8 (T+ 21.7 sec)
== Passed: polyglot/datum/array.py3.8 in 0.3 sec + 0.9 sec setup (T+ 22.8 sec)
== Starting: polyglot/datum/number.py3.8 (T+ 22.9 sec)
== Passed: polyglot/datum/null.py3.8 in 0.3 sec + 0.4 sec setup (T+ 23.4 sec)
== Starting: polyglot/datum/object.py3.8 (T+ 23.5 sec)
== Passed: polyglot/datum/number.py3.8 in 0.4 sec + 0.7 sec setup (T+ 24.6 sec)
== Starting: polyglot/datum/string.py3.8 (T+ 24.7 sec)
== Passed: polyglot/datum/object.py3.8 in 0.1 sec + 0.6 sec setup (T+ 24.7 sec)
== Starting: polyglot/datum/typeof.py3.8 (T+ 24.7 sec)
== Passed: polyglot/datum/typeof.py3.8 in 0.5 sec + 0.7 sec setup (T+ 26.9 sec)
== Passed: polyglot/datum/string.py3.8 in 0.2 sec + 1.1 sec setup (T+ 27.0 sec)
== Starting: polyglot/default.py3.8 (T+ 27.0 sec)
== Starting: polyglot/datum/uuid.py3.8 (T+ 27.0 sec)
== Passed: polyglot/changefeeds/squash.py3.8 in 10.4 sec + 0.6 sec setup (T+ 27.9 sec)
== Starting: polyglot/format.py3.8 (T+ 28.2 sec)
== Passed: polyglot/datum/uuid.py3.8 in 0.1 sec + 0.8 sec setup (T+ 28.6 sec)
== Starting: polyglot/geo/constructors.py3.8 (T+ 28.6 sec)
== Passed: polyglot/changefeeds/idxcopy.py3.8 in 15.8 sec + 0.2 sec setup (T+ 29.2 sec)
== Passed: polyglot/format.py3.8 in 0.1 sec + 0.2 sec setup (T+ 29.3 sec)
== Starting: polyglot/geo/indexing.py3.8 (T+ 29.4 sec)
== Starting: polyglot/geo/geojson.py3.8 (T+ 29.5 sec)
== Passed: polyglot/geo/constructors.py3.8 in 0.6 sec + 0.2 sec setup (T+ 30.1 sec)
== Starting: polyglot/geo/intersection_inclusion.py3.8 (T+ 30.2 sec)
== Passed: polyglot/geo/geojson.py3.8 in 0.1 sec + 0.5 sec setup (T+ 31.0 sec)
== Starting: polyglot/geo/operations.py3.8 (T+ 31.0 sec)
== Passed: polyglot/geo/intersection_inclusion.py3.8 in 0.3 sec + 0.4 sec setup (T+ 31.7 sec)
== Starting: polyglot/geo/primitives.py3.8 (T+ 31.7 sec)
== Passed: polyglot/changefeeds/edge.py3.8 in 22.9 sec + 0.3 sec setup (T+ 32.3 sec)
== Passed: polyglot/geo/operations.py3.8 in 0.4 sec + 0.2 sec setup (T+ 32.5 sec)
== Starting: polyglot/json.py3.8 (T+ 32.6 sec)
== Starting: polyglot/joins.py3.8 (T+ 32.6 sec)
== Passed: polyglot/geo/primitives.py3.8 in 0.4 sec + 0.3 sec setup (T+ 33.5 sec)
== Starting: polyglot/limits.py3.8 (T+ 33.5 sec)
== Passed: polyglot/json.py3.8 in 0.4 sec + 0.5 sec setup (T+ 34.2 sec)
== Starting: polyglot/match.py3.8 (T+ 34.2 sec)
== Passed: polyglot/default.py3.8 in 6.5 sec + 1.0 sec setup (T+ 35.1 sec)
== Starting: polyglot/math_logic/add.py3.8 (T+ 35.1 sec)
== Passed: polyglot/math_logic/add.py3.8 in 0.4 sec + 0.9 sec setup (T+ 38.3 sec)
== Starting: polyglot/math_logic/aliases.py3.8 (T+ 38.4 sec)
== Passed: polyglot/math_logic/aliases.py3.8 in 0.2 sec + 1.9 sec setup (T+ 42.4 sec)
== Starting: polyglot/math_logic/bit.py3.8 (T+ 42.4 sec)
== Passed: polyglot/math_logic/bit.py3.8 in 0.2 sec + 0.4 sec setup (T+ 43.4 sec)
== Starting: polyglot/math_logic/comparison.py3.8 (T+ 43.5 sec)
== Passed: polyglot/changefeeds/table.py3.8 in 35.4 sec + 0.4 sec setup (T+ 44.3 sec)
== Starting: polyglot/math_logic/div.py3.8 (T+ 45.0 sec)
== Passed: polyglot/math_logic/comparison.py3.8 in 0.4 sec + 0.2 sec setup (T+ 45.4 sec)
== Starting: polyglot/math_logic/floor_ceil_round.py3.8 (T+ 45.5 sec)
== Passed: polyglot/math_logic/div.py3.8 in 0.4 sec + 0.6 sec setup (T+ 46.8 sec)
== Passed: polyglot/math_logic/floor_ceil_round.py3.8 in 0.4 sec + 0.2 sec setup (T+ 46.8 sec)
== Starting: polyglot/math_logic/logic.py3.8 (T+ 46.8 sec)
== Starting: polyglot/math_logic/math.py3.8 (T+ 46.9 sec)
== Passed: polyglot/match.py3.8 in 12.3 sec + 0.3 sec setup (T+ 47.6 sec)
== Passed: polyglot/math_logic/logic.py3.8 in 0.3 sec + 0.2 sec setup (T+ 47.8 sec)
== Starting: polyglot/math_logic/mul.py3.8 (T+ 47.8 sec)
== Starting: polyglot/math_logic/mod.py3.8 (T+ 47.9 sec)
== Passed: polyglot/math_logic/math.py3.8 in 0.3 sec + 0.4 sec setup (T+ 48.3 sec)
== Starting: polyglot/math_logic/sub.py3.8 (T+ 48.3 sec)
== Passed: polyglot/control.py3.8 in 32.0 sec + 0.7 sec setup (T+ 48.3 sec)
== Passed: polyglot/math_logic/mul.py3.8 in 0.3 sec + 0.4 sec setup (T+ 49.1 sec)
== Starting: polyglot/meta/dbs.py3.8 (T+ 49.2 sec)
== Starting: polyglot/meta/composite.py3.8 (T+ 49.2 sec)
== Passed: polyglot/math_logic/sub.py3.8 in 0.1 sec + 0.2 sec setup (T+ 49.2 sec)
== Starting: polyglot/meta/grant.py3.8 (T+ 49.2 sec)
== Passed: polyglot/math_logic/mod.py3.8 in 0.4 sec + 0.4 sec setup (T+ 49.4 sec)
== Starting: polyglot/meta/table.py3.8 (T+ 49.5 sec)
== Passed: polyglot/geo/indexing.py3.8 in 19.2 sec + 0.3 sec setup (T+ 50.1 sec)
== Passed: polyglot/limits.py3.8 in 15.0 sec + 0.3 sec setup (T+ 50.2 sec)
== Starting: polyglot/mutation/delete.py3.8 (T+ 50.5 sec)
== Starting: polyglot/mutation/atomic_get_set.py3.8 (T+ 50.8 sec)
== Passed: polyglot/meta/dbs.py3.8 in 0.3 sec + 0.7 sec setup (T+ 51.5 sec)
== Starting: polyglot/mutation/insert.py3.8 (T+ 51.5 sec)
== Passed: polyglot/meta/grant.py3.8 in 10.0 sec + 0.8 sec setup (T+ 61.5 sec)
== Starting: polyglot/mutation/replace.py3.8 (T+ 62.2 sec)
== Passed: polyglot/mutation/delete.py3.8 in 11.6 sec + 0.6 sec setup (T+ 63.6 sec)
== Starting: polyglot/mutation/sync.py3.8 (T+ 64.3 sec)
== Passed: polyglot/mutation/atomic_get_set.py3.8 in 19.9 sec + 0.6 sec setup (T+ 73.7 sec)
== Starting: polyglot/mutation/update.py3.8 (T+ 74.5 sec)
== Passed: polyglot/mutation/replace.py3.8 in 15.6 sec + 0.2 sec setup (T+ 80.0 sec)
== Starting: polyglot/mutation/write_hook.py3.8 (T+ 81.0 sec)
== Passed: polyglot/mutation/sync.py3.8 in 33.2 sec + 0.9 sec setup (T+ 100.2 sec)
== Starting: polyglot/polymorphism.py3.8 (T+ 100.3 sec)
== Passed: polyglot/mutation/write_hook.py3.8 in 19.1 sec + 1.7 sec setup (T+ 103.0 sec)
== Starting: polyglot/random.py3.8 (T+ 103.3 sec)
== Passed: polyglot/mutation/update.py3.8 in 27.7 sec + 0.6 sec setup (T+ 104.5 sec)
== Passed: polyglot/random.py3.8 in 0.4 sec + 0.9 sec setup (T+ 105.2 sec)
== Starting: polyglot/regression/1001.py3.8 (T+ 105.2 sec)
== Starting: polyglot/range.py3.8 (T+ 105.2 sec)
== Passed: polyglot/range.py3.8 in 0.2 sec + 0.3 sec setup (T+ 106.4 sec)
== Starting: polyglot/regression/1005.py3.8 (T+ 106.5 sec)
== Passed: polyglot/regression/1005.py3.8 in 0.2 sec + 0.5 sec setup (T+ 108.2 sec)
== Starting: polyglot/regression/1023.py3.8 (T+ 108.3 sec)
== Passed: polyglot/polymorphism.py3.8 in 7.5 sec + 1.3 sec setup (T+ 110.1 sec)
== Starting: polyglot/regression/1081.py3.8 (T+ 110.6 sec)
== Passed: polyglot/regression/1081.py3.8 in 0.1 sec + 0.4 sec setup (T+ 111.8 sec)
== Starting: polyglot/regression/1132.py3.8 (T+ 111.8 sec)
== Passed: polyglot/regression/1132.py3.8 in 0.1 sec + 0.7 sec setup (T+ 113.6 sec)
== Starting: polyglot/regression/1133.py3.8 (T+ 113.6 sec)
== Passed: polyglot/regression/1133.py3.8 in 0.2 sec + 0.2 sec setup (T+ 114.9 sec)
== Starting: polyglot/regression/1155.py3.8 (T+ 114.9 sec)
== Passed: polyglot/regression/1023.py3.8 in 8.4 sec + 0.5 sec setup (T+ 118.4 sec)
== Passed: polyglot/regression/1001.py3.8 in 11.7 sec + 0.3 sec setup (T+ 118.5 sec)
== Starting: polyglot/regression/1179.py3.8 (T+ 118.7 sec)
== Starting: polyglot/regression/1468.py3.8 (T+ 118.9 sec)
== Passed: polyglot/aggregation.py3.8 in 118.4 sec + 0.1 sec setup (T+ 121.0 sec)
== Starting: polyglot/regression/1789.py3.8 (T+ 122.6 sec)
== Passed: polyglot/regression/1155.py3.8 in 7.7 sec + 0.3 sec setup (T+ 124.1 sec)
== Starting: polyglot/regression/2052.py3.8 (T+ 124.4 sec)
== Passed: polyglot/regression/2052.py3.8 in 0.3 sec + 0.7 sec setup (T+ 127.0 sec)
== Starting: polyglot/regression/2696.py3.8 (T+ 127.1 sec)
== Passed: polyglot/regression/1468.py3.8 in 7.6 sec + 0.6 sec setup (T+ 127.8 sec)
== Passed: polyglot/regression/1179.py3.8 in 7.9 sec + 0.5 sec setup (T+ 127.9 sec)
== Starting: polyglot/regression/2709.py3.8 (T+ 128.4 sec)
== Starting: polyglot/regression/2697.py3.8 (T+ 128.5 sec)
== Passed: polyglot/regression/2696.py3.8 in 0.2 sec + 0.2 sec setup (T+ 129.4 sec)
== Starting: polyglot/regression/2710.py3.8 (T+ 129.5 sec)
== Passed: polyglot/regression/2710.py3.8 in 0.3 sec + 0.2 sec setup (T+ 130.8 sec)
== Starting: polyglot/regression/2766.py3.8 (T+ 130.8 sec)
== Passed: polyglot/regression/2766.py3.8 in 0.4 sec + 0.7 sec setup (T+ 133.1 sec)
== Starting: polyglot/regression/2767.py3.8 (T+ 133.1 sec)
== Passed: polyglot/regression/1789.py3.8 in 8.8 sec + 0.6 sec setup (T+ 133.2 sec)
== Passed: polyglot/meta/composite.py3.8 in 82.4 sec + 0.6 sec setup (T+ 133.4 sec)
== Starting: polyglot/regression/2838.py3.8 (T+ 133.4 sec)
== Starting: polyglot/regression/2774.py3.8 (T+ 133.8 sec)
== Passed: polyglot/regression/2697.py3.8 in 11.9 sec + 1.1 sec setup (T+ 142.5 sec)
== Starting: polyglot/regression/2930.py3.8 (T+ 143.1 sec)
== Passed: polyglot/regression/2767.py3.8 in 11.8 sec + 0.8 sec setup (T+ 147.0 sec)
== Starting: polyglot/regression/3057.py3.8 (T+ 147.9 sec)
== Passed: polyglot/regression/3057.py3.8 in 0.4 sec + 1.4 sec setup (T+ 151.0 sec)
== Starting: polyglot/regression/3059.py3.8 (T+ 151.1 sec)
== Passed: polyglot/regression/3059.py3.8 in 0.2 sec + 0.6 sec setup (T+ 152.8 sec)
== Starting: polyglot/regression/309.py3.8 (T+ 152.8 sec)
== Passed: polyglot/regression/2774.py3.8 in 17.4 sec + 0.8 sec setup (T+ 153.3 sec)
== Starting: polyglot/regression/3444.py3.8 (T+ 153.7 sec)
== Passed: polyglot/mutation/insert.py3.8 in 105.4 sec + 0.4 sec setup (T+ 159.0 sec)
== Starting: polyglot/regression/354.py3.8 (T+ 159.7 sec)
== Passed: polyglot/regression/354.py3.8 in 0.2 sec + 0.3 sec setup (T+ 160.9 sec)
== Starting: polyglot/regression/3637.py3.8 (T+ 160.9 sec)
== Passed: polyglot/regression/3444.py3.8 in 7.6 sec + 0.2 sec setup (T+ 162.0 sec)
== Starting: polyglot/regression/370.py3.8 (T+ 162.5 sec)
== Passed: polyglot/regression/309.py3.8 in 8.5 sec + 0.5 sec setup (T+ 162.6 sec)
== Starting: polyglot/regression/3745.py3.8 (T+ 163.1 sec)
== Passed: polyglot/regression/2838.py3.8 in 36.1 sec + 1.2 sec setup (T+ 171.5 sec)
== Starting: polyglot/regression/3759.py3.8 (T+ 172.1 sec)
== Passed: polyglot/regression/3637.py3.8 in 10.8 sec + 0.2 sec setup (T+ 172.5 sec)
== Starting: polyglot/regression/4030.py3.8 (T+ 172.8 sec)
== Passed: polyglot/regression/2709.py3.8 in 43.3 sec + 0.9 sec setup (T+ 173.2 sec)
== Starting: polyglot/regression/4132.py3.8 (T+ 173.5 sec)
== Passed: polyglot/regression/3745.py3.8 in 9.1 sec + 0.6 sec setup (T+ 173.6 sec)
== Starting: polyglot/regression/4146.py3.8 (T+ 174.0 sec)
== Passed: polyglot/regression/370.py3.8 in 11.1 sec + 0.4 sec setup (T+ 174.7 sec)
== Starting: polyglot/regression/4431.py3.8 (T+ 174.7 sec)
== Passed: polyglot/regression/4431.py3.8 in 0.2 sec + 0.3 sec setup (T+ 175.9 sec)
== Starting: polyglot/regression/4462.py3.8 (T+ 176.0 sec)
== Passed: polyglot/regression/3759.py3.8 in 5.8 sec + 0.4 sec setup (T+ 178.7 sec)
== Starting: polyglot/regression/4465.py3.8 (T+ 179.1 sec)
== Passed: polyglot/regression/4030.py3.8 in 7.0 sec + 0.2 sec setup (T+ 180.4 sec)
== Passed: polyglot/regression/4146.py3.8 in 5.9 sec + 0.2 sec setup (T+ 180.6 sec)
== Passed: polyglot/regression/4132.py3.8 in 6.3 sec + 0.4 sec setup (T+ 180.6 sec)
== Starting: polyglot/regression/4501.py3.8 (T+ 180.6 sec)
== Starting: polyglot/regression/453.py3.8 (T+ 180.9 sec)
== Starting: polyglot/regression/4582.py3.8 (T+ 181.0 sec)
== Passed: polyglot/joins.py3.8 in 148.8 sec + 0.5 sec setup (T+ 182.7 sec)
== Passed: polyglot/regression/4462.py3.8 in 6.1 sec + 0.3 sec setup (T+ 183.7 sec)
== Starting: polyglot/regression/46.py3.8 (T+ 184.0 sec)
== Starting: polyglot/regression/4591.py3.8 (T+ 185.7 sec)
== Passed: polyglot/regression/4465.py3.8 in 6.5 sec + 0.6 sec setup (T+ 187.3 sec)
== Starting: polyglot/regression/469.py3.8 (T+ 187.3 sec)
== Passed: polyglot/regression/4591.py3.8 in 0.4 sec + 1.0 sec setup (T+ 188.1 sec)
== Starting: polyglot/regression/4729.py3.8 (T+ 188.1 sec)
== Passed: polyglot/regression/4501.py3.8 in 7.8 sec + 0.4 sec setup (T+ 189.9 sec)
== Starting: polyglot/regression/522.py3.8 (T+ 190.4 sec)
== Passed: polyglot/regression/4582.py3.8 in 8.9 sec + 0.2 sec setup (T+ 191.0 sec)
== Passed: polyglot/regression/453.py3.8 in 9.3 sec + 0.4 sec setup (T+ 191.2 sec)
== Starting: polyglot/regression/5222.py3.8 (T+ 191.3 sec)
== Starting: polyglot/regression/5241.py3.8 (T+ 191.6 sec)
== Passed: polyglot/regression/46.py3.8 in 7.2 sec + 1.1 sec setup (T+ 193.4 sec)
== Starting: polyglot/regression/5438.py3.8 (T+ 193.4 sec)
== Passed: polyglot/regression/4729.py3.8 in 11.2 sec + 0.9 sec setup (T+ 200.9 sec)
== Passed: polyglot/regression/522.py3.8 in 9.6 sec + 0.4 sec setup (T+ 201.1 sec)
== Starting: polyglot/regression/545.py3.8 (T+ 201.2 sec)
== Passed: polyglot/regression/469.py3.8 in 13.0 sec + 0.3 sec setup (T+ 201.3 sec)
== Starting: polyglot/regression/5481.py3.8 (T+ 201.3 sec)
== Starting: polyglot/regression/546.py3.8 (T+ 201.8 sec)
== Passed: polyglot/regression/546.py3.8 in 0.1 sec + 0.4 sec setup (T+ 203.2 sec)
== Starting: polyglot/regression/5542.py3.8 (T+ 203.2 sec)
== Passed: polyglot/regression/5241.py3.8 in 11.8 sec + 0.7 sec setup (T+ 204.9 sec)
== Starting: polyglot/regression/568.py3.8 (T+ 205.2 sec)
== Passed: polyglot/regression/5438.py3.8 in 10.4 sec + 1.0 sec setup (T+ 205.8 sec)
== Starting: polyglot/regression/578.py3.8 (T+ 206.2 sec)
== Passed: polyglot/regression/545.py3.8 in 9.6 sec + 0.9 sec setup (T+ 212.9 sec)
== Starting: polyglot/regression/579.py3.8 (T+ 213.4 sec)
== Passed: polyglot/regression/5542.py3.8 in 10.1 sec + 0.3 sec setup (T+ 214.2 sec)
== Passed: polyglot/regression/5481.py3.8 in 11.5 sec + 0.9 sec setup (T+ 214.3 sec)
== Starting: polyglot/regression/6108.py3.8 (T+ 214.5 sec)
== Starting: polyglot/regression/619.py3.8 (T+ 214.7 sec)
== Passed: polyglot/regression/6108.py3.8 in 0.3 sec + 0.7 sec setup (T+ 216.0 sec)
== Passed: polyglot/regression/619.py3.8 in 0.1 sec + 0.6 sec setup (T+ 216.0 sec)
== Starting: polyglot/regression/6191.py3.8 (T+ 216.0 sec)
== Starting: polyglot/regression/665.py3.8 (T+ 216.0 sec)
== Passed: polyglot/regression/568.py3.8 in 9.6 sec + 1.0 sec setup (T+ 217.3 sec)
== Starting: polyglot/regression/678.py3.8 (T+ 217.7 sec)
== Passed: polyglot/regression/5222.py3.8 in 24.2 sec + 1.1 sec setup (T+ 217.8 sec)
== Passed: polyglot/regression/6191.py3.8 in 0.4 sec + 0.6 sec setup (T+ 217.9 sec)
== Starting: polyglot/regression/730.py3.8 (T+ 217.9 sec)
== Starting: polyglot/regression/718.py3.8 (T+ 218.1 sec)
== Passed: polyglot/regression/578.py3.8 in 11.6 sec + 0.6 sec setup (T+ 219.1 sec)
== Passed: polyglot/regression/730.py3.8 in 0.2 sec + 0.3 sec setup (T+ 219.1 sec)
== Starting: polyglot/regression/767.py3.8 (T+ 219.1 sec)
== Starting: polyglot/regression/757.py3.8 (T+ 220.2 sec)
== Passed: polyglot/regression/767.py3.8 in 0.4 sec + 0.4 sec setup (T+ 221.0 sec)
== Starting: polyglot/regression/831.py3.8 (T+ 221.1 sec)
== Passed: polyglot/regression/579.py3.8 in 6.9 sec + 0.4 sec setup (T+ 221.7 sec)
== Passed: polyglot/regression/757.py3.8 in 0.3 sec + 0.5 sec setup (T+ 222.4 sec)
== Starting: polyglot/sindex/api.py3.8 (T+ 222.4 sec)
== Starting: polyglot/selection.py3.8 (T+ 222.4 sec)
== Passed: polyglot/regression/665.py3.8 in 8.7 sec + 0.9 sec setup (T+ 226.9 sec)
== Starting: polyglot/sindex/nullsinstrings.py3.8 (T+ 227.0 sec)
== Passed: polyglot/meta/table.py3.8 in 176.6 sec + 0.5 sec setup (T+ 227.9 sec)
== Passed: polyglot/regression/678.py3.8 in 8.2 sec + 0.6 sec setup (T+ 227.9 sec)
== Starting: polyglot/sindex/status.py3.8 (T+ 227.9 sec)
== Passed: polyglot/regression/718.py3.8 in 8.1 sec + 0.5 sec setup (T+ 228.1 sec)
== Starting: polyglot/timeout.py3.8 (T+ 228.5 sec)
== Starting: polyglot/times/api.py3.8 (T+ 228.9 sec)
== Passed: polyglot/regression/831.py3.8 in 7.4 sec + 0.8 sec setup (T+ 229.8 sec)
== Passed: polyglot/times/api.py3.8 in 0.2 sec + 0.4 sec setup (T+ 230.0 sec)
== Starting: polyglot/times/index.py3.8 (T+ 230.0 sec)
== Starting: polyglot/times/constructors.py3.8 (T+ 230.1 sec)
== Passed: polyglot/times/constructors.py3.8 in 0.3 sec + 0.4 sec setup (T+ 231.4 sec)
== Starting: polyglot/times/portions.py3.8 (T+ 231.5 sec)
== Passed: polyglot/times/portions.py3.8 in 0.3 sec + 0.3 sec setup (T+ 232.6 sec)
== Starting: polyglot/times/shim.py3.8 (T+ 232.7 sec)
== Passed: polyglot/times/shim.py3.8 in 0.2 sec + 0.3 sec setup (T+ 234.0 sec)
== Starting: polyglot/times/time_arith.py3.8 (T+ 234.1 sec)
== Passed: polyglot/times/time_arith.py3.8 in 0.2 sec + 0.3 sec setup (T+ 235.1 sec)
== Starting: polyglot/times/timezones.py3.8 (T+ 235.1 sec)
== Passed: polyglot/times/timezones.py3.8 in 0.1 sec + 0.4 sec setup (T+ 236.2 sec)
== Starting: polyglot/transform/array.py3.8 (T+ 236.2 sec)
== Passed: polyglot/sindex/nullsinstrings.py3.8 in 8.4 sec + 0.6 sec setup (T+ 236.7 sec)
== Passed: polyglot/transform/array.py3.8 in 0.2 sec + 0.2 sec setup (T+ 237.0 sec)
== Starting: polyglot/transform/map.py3.8 (T+ 237.0 sec)
== Starting: polyglot/transform/fold.py3.8 (T+ 237.1 sec)
== Passed: polyglot/transform/map.py3.8 in 0.2 sec + 0.2 sec setup (T+ 238.1 sec)
== Starting: polyglot/transform/object.py3.8 (T+ 238.1 sec)
== Passed: polyglot/transform/object.py3.8 in 0.2 sec + 0.2 sec setup (T+ 238.9 sec)
== Starting: polyglot/transform/table.py3.8 (T+ 238.9 sec)
== Passed: polyglot/times/index.py3.8 in 11.6 sec + 0.4 sec setup (T+ 242.6 sec)
== Starting: polyglot/transform/unordered_map.py3.8 (T+ 242.9 sec)
== Passed: polyglot/transform/table.py3.8 in 4.4 sec + 0.2 sec setup (T+ 244.0 sec)
== Starting: polyglot/transformation.py3.8 (T+ 244.3 sec)
== Passed: polyglot/selection.py3.8 in 24.2 sec + 0.8 sec setup (T+ 248.1 sec)
== Passed: polyglot/transform/fold.py3.8 in 13.7 sec + 0.2 sec setup (T+ 251.3 sec)
== Passed: polyglot/regression/2930.py3.8 in 112.2 sec + 0.7 sec setup (T+ 256.6 sec)
== Passed: polyglot/timeout.py3.8 in 29.6 sec + 0.8 sec setup (T+ 259.2 sec)
== Passed: polyglot/transform/unordered_map.py3.8 in 16.2 sec + 0.3 sec setup (T+ 259.8 sec)
== Passed: polyglot/transformation.py3.8 in 20.3 sec + 0.3 sec setup (T+ 265.2 sec)
== Passed: polyglot/sindex/api.py3.8 in 51.2 sec + 1.5 sec setup (T+ 275.4 sec)
== Passed: polyglot/sindex/status.py3.8 in 160.8 sec + 0.5 sec setup (T+ 389.4 sec)

== Successfully passed all 138 tests in 389.75 seconds!

Do you want to help?

Great! Fix an issue, add unit tests, add more docs, help with integration tests, help porting a net module or a command1 and open a PR against this branch, so we can keep the effort focused.

Footnotes

  1. moving the commands has some prerequisite that will be implemented by @gabor-boros. -- resolved by https://github.com/rethinkdb/rethinkdb-python/pull/279

@gabor-boros gabor-boros force-pushed the gabor/python3-v2.5.0 branch from 9b62b73 to 918d28b Compare June 21, 2022 17:19
@gabor-boros
Copy link
Member Author

cc: @lsabi @Inveracity

@gabor-boros gabor-boros force-pushed the gabor/python3-v2.5.0 branch from 918d28b to fc94eea Compare June 21, 2022 17:35
Copy link

@qlty-cloud-legacy qlty-cloud-legacy bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR diff size of 22689 lines exceeds the maximum allowed for the inline comments feature.

@gabor-boros gabor-boros force-pushed the gabor/python3-v2.5.0 branch from fc94eea to 82d126b Compare June 21, 2022 17:41
Copy link

@qlty-cloud-legacy qlty-cloud-legacy bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR diff size of 22689 lines exceeds the maximum allowed for the inline comments feature.

@qlty-cloud-legacy
Copy link

qlty-cloud-legacy bot commented Jun 21, 2022

Code Climate has analyzed commit abbefd7 and detected 4 issues on this pull request.

Here's the issue category breakdown:

Category Count
Complexity 4

The test coverage on the diff in this pull request is 73.0% (70% is the threshold).

This pull request will bring the total coverage in the repository to 69.4%.

View more on Code Climate.

gabor-boros and others added 2 commits June 21, 2022 21:56
This commit brings a major refactoring that affects every piece of the
driver, mostly, in a backward-incompatible way.

For the extensive list of changes, please refer to the CHANGELOG.rst.

Co-authored-by: lsabi <[email protected]>
Signed-off-by: Gabor Boros <[email protected]>
Co-authored-by: lsabi <[email protected]>
Signed-off-by: Gabor Boros <[email protected]>
Copy link

@qlty-cloud-legacy qlty-cloud-legacy bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR diff size of 22689 lines exceeds the maximum allowed for the inline comments feature.

Copy link

@qlty-cloud-legacy qlty-cloud-legacy bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR diff size of 22694 lines exceeds the maximum allowed for the inline comments feature.

@gabor-boros
Copy link
Member Author

@Inveracity @lsabi FYI: the base for management commands are done, so it could be possible to migrate the commands (though those will need a somewhat big refactor when porting)

Copy link

@qlty-cloud-legacy qlty-cloud-legacy bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR diff size of 22985 lines exceeds the maximum allowed for the inline comments feature.

lsabi
lsabi previously approved these changes Jun 27, 2022
@lsabi
Copy link
Contributor

lsabi commented Jun 27, 2022

@gabor-boros The basis is good, but dumb question: should we merge it already without the commands and then port the commands or shall we port all commands before releasing?

@gabor-boros
Copy link
Member Author

The basis is good, but dumb question: should we merge it already without the commands and then port the commands or shall we port all commands before releasing?

@lsabi I would say let's port the rest before merging. The reason is that I'm pretty sure that there are some people who use the driver's master branch instead of a git commit hash or tagged version. Yes, when we merge this PR we will break some integrations for them, but at least they will be able to upgrade to use the new driver which is functioning.

Especially that we would need some folks who can check the driver before merging.

Signed-off-by: Gabor Boros <[email protected]>
Copy link

@qlty-cloud-legacy qlty-cloud-legacy bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR diff size of 22985 lines exceeds the maximum allowed for the inline comments feature.

lsabi
lsabi previously approved these changes Jul 6, 2022
@gabor-boros gabor-boros force-pushed the gabor/python3-v2.5.0 branch from ec8313f to a779501 Compare July 17, 2025 17:02
@gabor-boros gabor-boros mentioned this pull request Jul 31, 2025
1 task
@gabor-boros gabor-boros force-pushed the gabor/python3-v2.5.0 branch 4 times, most recently from f8595cf to 3103163 Compare July 31, 2025 09:11
@gabor-boros gabor-boros force-pushed the gabor/python3-v2.5.0 branch from 3103163 to d9899ee Compare July 31, 2025 09:28
@gabor-boros gabor-boros force-pushed the gabor/python3-v2.5.0 branch from 416fb95 to 419e9a8 Compare August 16, 2025 09:51
@gabor-boros gabor-boros force-pushed the gabor/python3-v2.5.0 branch from d46ba60 to 870b6a1 Compare August 17, 2025 14:24
Signed-off-by: Gabor Boros <[email protected]>
@gabor-boros gabor-boros force-pushed the gabor/python3-v2.5.0 branch from 870b6a1 to 7e2dd6e Compare August 17, 2025 14:55
@gabor-boros gabor-boros force-pushed the gabor/python3-v2.5.0 branch 5 times, most recently from e504faa to 749a2b8 Compare August 19, 2025 08:56
@gabor-boros gabor-boros force-pushed the gabor/python3-v2.5.0 branch from b610876 to d3d36d9 Compare August 19, 2025 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

4 participants