Skip to main content

TypeDB Driver for Python

Project description

TypeDB Python Driver

Driver Architecture

To learn about the mechanism that TypeDB drivers use to set up communication with databases running on the TypeDB Server, refer to the Drivers Overview.

API Reference

To learn about the methods available for executing queries and retrieving their answers using Python, refer to the API Reference.

Install TypeDB Python Driver through Pip

  1. Install typedb-driver using pip:
pip install typedb-driver
  1. If multiple Python versions are available, you may wish to use:
pip3 install typedb-driver
  1. Make sure a TypeDB Server is running.
  2. In your python program, import from typedb.driver (see Example usage or tests/integration for examples):
from typedb.driver import *

driver = TypeDB.driver(address=TypeDB.DEFAULT_ADDRESS, ...)

Example usage

from typedb.driver import *


class TypeDBExample:

    def typedb_example(self):
        # Open a driver connection. Specify your parameters if needed
        # The connection will be automatically closed on the "with" block exit
        with TypeDB.driver(TypeDB.DEFAULT_ADDRESS, Credentials("admin", "password"), DriverOptions(is_tls_enabled=False)) as driver:
            # Create a database
            driver.databases.create("typedb")
            database = driver.databases.get("typedb")

            # Use "try" blocks to catch driver exceptions
            try:
                # Open transactions of 3 types
                tx = driver.transaction(database.name, TransactionType.READ)

                # Execute any TypeDB query using TypeQL. Wrong queries are rejected with an explicit exception
                result_promise = tx.query("define entity i-cannot-be-defined-in-read-transactions;")

                print("The result is still promised, so it needs resolving even in case of errors!")
                result_promise.resolve()
            except TypeDBDriverException as expected_exception:
                print(f"Once the query's promise is resolved, the exception is revealed: {expected_exception}")
            finally:
                # Don't forget to close the transaction!
                tx.close()

            # Open a schema transaction to make schema changes
            # Transactions can be opened with configurable options. This option limits its lifetime
            options = TransactionOptions(transaction_timeout_millis=10_000)

            # Use "with" blocks to forget about "close" operations (similarly to connections)
            with driver.transaction(database.name, TransactionType.SCHEMA, options) as tx:
                define_query = """
                define 
                  entity person, owns name, owns age; 
                  attribute name, value string;
                  attribute age, value integer;
                """
                answer = tx.query(define_query).resolve()
                if answer.is_ok():
                    print(f"OK results do not give any extra interesting information, but they mean that the query "
                          f"is successfully executed!")

                # Commit automatically closes the transaction. It can still be safely called inside "with" blocks
                tx.commit()

            # Open a read transaction to safely read anything without database modifications
            with driver.transaction(database.name, TransactionType.READ) as tx:
                answer = tx.query("match entity $x;").resolve()

                # Collect concept rows that represent the answer as a table
                rows = list(answer.as_concept_rows())
                row = rows[0]

                # Collect column names to get concepts by index if the variable names are lost
                header = list(row.column_names())

                column_name = header[0]

                # Get concept by the variable name (column name)
                concept_by_name = row.get(column_name)

                # Get concept by the header's index
                concept_by_index = row.get_index(0)

                print(f"Getting concepts by variable names ({concept_by_name.get_label()}) and "
                      f"indexes ({concept_by_index.get_label()}) is equally correct. ")

                # Check if it's an entity type before the conversion
                if concept_by_name.is_entity_type():
                    print(f"Both represent the defined entity type: '{concept_by_name.as_entity_type().get_label()}' "
                          f"(in case of a doubt: '{concept_by_index.as_entity_type().get_label()}')")

                # Continue querying in the same transaction if needed
                answer = tx.query("match attribute $a;").resolve()

                # Concept rows can be used as any other iterator
                rows = [row for row in answer.as_concept_rows()]

                for row in rows:
                    # Same for column names
                    column_names_iter = row.column_names()
                    column_name = next(column_names_iter)

                    concept_by_name = row.get(column_name)

                    # Check if it's an attribute type before the conversion
                    if concept_by_name.is_attribute_type():
                        attribute_type = concept_by_name.as_attribute_type()
                        print(f"Defined attribute type's label: '{attribute_type.get_label()}', "
                              f"value type: '{attribute_type.try_get_value_type()}'")


                    print(f"It is also possible to just print the concept itself: '{concept_by_name}'")

            # Open a write transaction to insert data
            with driver.transaction(database.name, TransactionType.WRITE) as tx:
                insert_query = "insert $z isa person, has age 10; $x isa person, has age 20, has name \"John\";"
                answer = tx.query(insert_query).resolve()

                # Insert queries also return concept rows
                rows = list(answer.as_concept_rows())
                row = rows[0]

                for column_name in row.column_names():
                    inserted_concept = row.get(column_name)
                    print(f"Successfully inserted ${column_name}: {inserted_concept}")
                    if inserted_concept.is_entity():
                        print("This time, it's an entity, not a type!")

                # It is possible to ask for the column names again
                header = [name for name in row.column_names()]

                x = row.get_index(header.index("x"))
                print("As we expect an entity instance, we can try to get its IID (unique identification): "
                      "{x.try_get_iid()}. ")
                if x.is_entity():
                    print(f"It can also be retrieved directly and safely after a cast: {x.as_entity().get_iid()}")

                # Do not forget to commit if the changes should be persisted
                print('CAUTION: Committing or closing (including leaving the "with" block) a transaction will '
                      'invalidate all its uncollected answer iterators')
                tx.commit()

            # Open another write transaction to try inserting even more data
            with driver.transaction(database.name, TransactionType.WRITE) as tx:
                # When loading a large dataset, it's often better not to resolve every query's promise immediately.
                # Instead, collect promises and handle them later. Alternatively, if a commit is expected in the end,
                # just call `commit`, which will wait for all ongoing operations to finish before executing.
                queries = ["insert $a isa person, has name \"Alice\";", "insert $b isa person, has name \"Bob\";"]
                for query in queries:
                    tx.query(query)
                tx.commit()

            with driver.transaction(database.name, TransactionType.WRITE) as tx:
                # Commit will still fail if at least one of the queries produce an error.
                queries = ["insert $c isa not-person, has name \"Chris\";", "insert $d isa person, has name \"David\";"]
                promises = []
                for query in queries:
                    promises.append(tx.query(query))

                try:
                    tx.commit()
                    assert False, "TypeDBDriverException is expected"
                except TypeDBDriverException as expected_exception:
                    print(f"Commit result will contain the unresolved query's error: {expected_exception}")

            # Open a read transaction to verify that the previously inserted data is saved
            with driver.transaction(database.name, TransactionType.READ) as tx:
                # Queries can also be executed with configurable options. This option forces the database
                # to include types of instance concepts in ConceptRows answers
                options = QueryOptions(include_instance_types=True)

                # A match query can be used for concept row outputs
                var = "x"
                answer = tx.query(f"match ${var} isa person;", options).resolve()

                # Simple match queries always return concept rows
                count = 0
                for row in answer.as_concept_rows():
                    x = row.get(var)
                    x_type = x.as_entity().get_type().as_entity_type()
                    count += 1
                    print(f"Found a person {x} of type {x_type}")
                print(f"Total persons found: {count}")

                # A fetch query can be used for concept document outputs with flexible structure
                fetch_query = """
                match
                  $x isa! person, has $a;
                  $a isa! $t;
                fetch {
                  "single attribute type": $t,
                  "single attribute": $a,
                  "all attributes": { $x.* },
                };
                """
                answer = tx.query(fetch_query).resolve()

                # Fetch queries always return concept documents
                count = 0
                for document in answer.as_concept_documents():
                    count += 1
                    print(f"Fetched a document: {document}.")
                    print(f"This document contains an attribute of type: {document['single attribute type']['label']}")
                print(f"Total documents fetched: {count}")

        print("More examples can be found in the API reference and the documentation.\nWelcome to TypeDB!")

Project details


Release history Release notifications | RSS feed

This version

3.8.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

typedb_driver-3.8.0-py313-none-manylinux_2_17_x86_64.whl (7.4 MB view details)

Uploaded Python 3.13manylinux: glibc 2.17+ x86-64

typedb_driver-3.8.0-py313-none-manylinux_2_17_aarch64.whl (7.4 MB view details)

Uploaded Python 3.13manylinux: glibc 2.17+ ARM64

typedb_driver-3.8.0-py313-none-macosx_11_0_x86_64.whl (6.4 MB view details)

Uploaded Python 3.13macOS 11.0+ x86-64

typedb_driver-3.8.0-py313-none-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded Python 3.13macOS 11.0+ ARM64

typedb_driver-3.8.0-py312-none-win_amd64.whl (3.7 MB view details)

Uploaded Python 3.12Windows x86-64

typedb_driver-3.8.0-py312-none-manylinux_2_17_x86_64.whl (7.4 MB view details)

Uploaded Python 3.12manylinux: glibc 2.17+ x86-64

typedb_driver-3.8.0-py312-none-manylinux_2_17_aarch64.whl (7.4 MB view details)

Uploaded Python 3.12manylinux: glibc 2.17+ ARM64

typedb_driver-3.8.0-py312-none-macosx_11_0_x86_64.whl (6.4 MB view details)

Uploaded Python 3.12macOS 11.0+ x86-64

typedb_driver-3.8.0-py312-none-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded Python 3.12macOS 11.0+ ARM64

typedb_driver-3.8.0-py311-none-win_amd64.whl (3.7 MB view details)

Uploaded Python 3.11Windows x86-64

typedb_driver-3.8.0-py311-none-manylinux_2_17_x86_64.whl (7.4 MB view details)

Uploaded Python 3.11manylinux: glibc 2.17+ x86-64

typedb_driver-3.8.0-py311-none-manylinux_2_17_aarch64.whl (7.4 MB view details)

Uploaded Python 3.11manylinux: glibc 2.17+ ARM64

typedb_driver-3.8.0-py311-none-macosx_11_0_x86_64.whl (6.4 MB view details)

Uploaded Python 3.11macOS 11.0+ x86-64

typedb_driver-3.8.0-py311-none-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded Python 3.11macOS 11.0+ ARM64

typedb_driver-3.8.0-py310-none-win_amd64.whl (3.7 MB view details)

Uploaded Python 3.10Windows x86-64

typedb_driver-3.8.0-py310-none-manylinux_2_17_x86_64.whl (7.4 MB view details)

Uploaded Python 3.10manylinux: glibc 2.17+ x86-64

typedb_driver-3.8.0-py310-none-manylinux_2_17_aarch64.whl (7.4 MB view details)

Uploaded Python 3.10manylinux: glibc 2.17+ ARM64

typedb_driver-3.8.0-py310-none-macosx_11_0_x86_64.whl (6.4 MB view details)

Uploaded Python 3.10macOS 11.0+ x86-64

typedb_driver-3.8.0-py310-none-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded Python 3.10macOS 11.0+ ARM64

typedb_driver-3.8.0-py39-none-win_amd64.whl (3.7 MB view details)

Uploaded Python 3.9Windows x86-64

typedb_driver-3.8.0-py39-none-manylinux_2_17_x86_64.whl (7.4 MB view details)

Uploaded Python 3.9manylinux: glibc 2.17+ x86-64

typedb_driver-3.8.0-py39-none-manylinux_2_17_aarch64.whl (7.4 MB view details)

Uploaded Python 3.9manylinux: glibc 2.17+ ARM64

typedb_driver-3.8.0-py39-none-macosx_11_0_x86_64.whl (6.4 MB view details)

Uploaded Python 3.9macOS 11.0+ x86-64

typedb_driver-3.8.0-py39-none-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded Python 3.9macOS 11.0+ ARM64

File details

Details for the file typedb_driver-3.8.0-py313-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py313-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 3a6b2ff9fdc8caedfeb92b805cf8a1cbae4c2924ef5b1243394101e11ffbba93
MD5 6f4f0df1e32288da6b3b4348a89bdf47
BLAKE2b-256 aed7ff3a354a00036d390cebb3a5674b5e39db1adb8a07f2dd91b52841d25309

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py313-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py313-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 534a16c05436967daafe0e9480888142e7165a6ca0652e1b14fa6e5b924b4219
MD5 cc606087ba101c8e92f2ae3caccf5c92
BLAKE2b-256 b9b38e360101a7a42465aea84acffb52da1a24818435ba9fc0b038f1b0724b24

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py313-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py313-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 5bcfac2576e43266c8943d902af22ddda908dd0e160ebf734928f2d8d1f2c8a5
MD5 0f10ca1c333d1d235f3d2340e1e123a5
BLAKE2b-256 92367cbf034732170b266ccdcf149585d28be2db2bf1003cf7926b820980dffc

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py313-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py313-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37cfbbbe3452be3ef2e132c2ddf15628f6cd85f596b7e0e9cb14e37ca35f05bb
MD5 d79bfa0fe84df1b895084ec023d2732c
BLAKE2b-256 3bbbf3a6a311d66ed0880fd8124b8f8163da5c6caf64777399d87da25d40dc32

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py312-none-win_amd64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py312-none-win_amd64.whl
Algorithm Hash digest
SHA256 275d466e6f36cade77c183232028034a62b95e69711e2b4484a8594912d4b7f3
MD5 c0d82d4496cea64aff2165dff3872e46
BLAKE2b-256 fbaf2e7cc57950efea00bc44a90b2d15e10398e7af917e2f70e00b097a8bd131

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py312-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py312-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0a0773c53d98123f712db8d0a808f7c22c562e25a76aa3cb18ad6c86e4a76104
MD5 2ab7df0cd145e5fef097241589ac3381
BLAKE2b-256 e0a06247276b7901b7e61e99f630a839b3bba1df76a56f88066d87da0e11ecbf

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py312-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py312-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 06d4c00420d7ce5023491788a2a62db367d42f20bc8534755d99ab79b5fbaaef
MD5 0e263f776197b0ddede1fc82b4d16e99
BLAKE2b-256 fc70743fa8ad6b9b587e079bb570c0d09ae9d15e6b8355047db122be8c3f9db7

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py312-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py312-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 276e82433f9d6c1a9a4487802514d620d527596a907e85bcd3c0c29504683e96
MD5 c5e7bb3b34581e68fa42b41594447684
BLAKE2b-256 ecef7f2d18dfbc65a54fad86010b781be596e676f3497baeb4c8d3f9558e2580

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py312-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py312-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 511b22ee962b81c458440771dfa4217e69a8bfb11957bf14bfbf81ef1e097ada
MD5 410a68410bd6848b8fd45d618a138628
BLAKE2b-256 6e9183d028a84d6083782830c7c607c60b09c407b45575dbd5f6726c18dce65f

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py311-none-win_amd64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py311-none-win_amd64.whl
Algorithm Hash digest
SHA256 cbf883576aa9b8cb4c42007097635674f4a5cb21e0ffd739bbce21f29c1131a3
MD5 3b489779a709a529660abd4ae1d9b378
BLAKE2b-256 8884fd946f3c7c7ac32ccb2ad4206e701bbf3a584ec43e5971cab828ce8b4570

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py311-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py311-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d02517e563f6ff7056d4fe63ffe3a00d28cf2d3d1a2a6184b28d08a27b7164fc
MD5 a4c24bc119e550750334bdcd8d1055f6
BLAKE2b-256 b80649cdd1ca399ff78f280a026fa323aed3529bcc3082348e8c4eb826b869e3

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py311-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py311-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 f679ee7cf8b3eb73de1095d03fb893e77e28206804d4cee48534e071165e853f
MD5 a9653e5902003d41286da57c95c7ce1b
BLAKE2b-256 77acb3493eae91876e219e1994f3affdcbdbcc26004260678e8d8b14cf2504e4

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py311-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py311-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 3ff01e9c4ef491d7eaf20e8fd9d262644b1d51b6b25851b85aae628ac4b196ad
MD5 e616989ea59cc1044f1bf836ce13d614
BLAKE2b-256 d5fb924351dba0dc3c62ab7b7e9ca529e3012588bd52b3ed659c7acf13772bdd

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py311-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py311-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5715d3ecb591e8094afb311cd98a0ff712b2852e606c001402b0e566b9750622
MD5 6998fc009433253c786cd723944d9f16
BLAKE2b-256 e1a3125978ed1134d7de1983ea44193ab52d08cfab09b155bdebb6af7dbae743

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py310-none-win_amd64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py310-none-win_amd64.whl
Algorithm Hash digest
SHA256 d721fdae61e23e7812aed38bcdcb41d99a9cdecca0c81d88b1a76a13f05dcc32
MD5 29b7ed4c9327f5e7de50c154eca65cc3
BLAKE2b-256 a50cac75af5eeaebcbf47370f5b53bf6e7af8d43e6d3fe2b0a8140fa196b10ca

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py310-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py310-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 730c440d3f9857b9d683b302b8c670ea957cea7e67c31480ad61591c4dafd9a7
MD5 4147ae76710e3485ef4da979c1e5a21b
BLAKE2b-256 74abad575061606345b81cecabf050581dc00c50e2bf4eb115ea536af99c958c

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py310-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py310-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 e6d184e9f6c232b086ce86769096b10b2fd24f6a04b2874c7cfa4004aa7dd3f0
MD5 8f57628497f0483009a1bfdc442c4374
BLAKE2b-256 d7df4b58ea5444ad308c9db2d52ac700a71893b095d60ba2df24b95e1bbb537a

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py310-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py310-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 b293c8e9854a4b2bc36567363b68e94913fb54a9f3ea4913500b7138d6ca25fc
MD5 75557a18a5e773c044a6e7113bae0ea8
BLAKE2b-256 7bc41884adc7d8a88511903b2d12e959a8a62c76dcbd689158c8ebc33adbc0a0

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py310-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py310-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 24a6cd91f6890e20e99523a5154305caaa36d6d4a4e3ef5f981a6ae20bc10818
MD5 e2a1165a81064640419b87c61741b208
BLAKE2b-256 e18ed186a3d352e3faa8d24080ad78e3bb6296dcbe5fca34274ef07333c58513

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py39-none-win_amd64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py39-none-win_amd64.whl
Algorithm Hash digest
SHA256 58fbed8da78cc32ed3443d448b292478ab564bd7e576b92aa898d053ebbf1f83
MD5 1150fbf16a4c4315c02b3ad7d03f0e1e
BLAKE2b-256 656b8e3e0d93e850fe4330c882c9a66cb405d473506aa47fbf312d613a689443

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py39-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py39-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 bd89bf4c6dcfaa03a545382923dc2b5c92905b5e99f9ca396a3c23527b22e150
MD5 4173f97a88519b80cd30c03bdd18013e
BLAKE2b-256 f8b4b45060da6d5d4b00769870ee0f6fdc9a3fdb6f166040153ed4428874736f

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py39-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py39-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 226284ee33152c9663663e9663e89119dd5298e931a58b3b11be49b7e1ff4686
MD5 274cb8b4bef15e36a819f1a7c4cf0ec3
BLAKE2b-256 e310b08527f1d702f58a320654aabbd2c94723cfb77318160f0e9a3c2185c560

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py39-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py39-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 860f7141f054635caf5be77da2edc5efab5f9ede7847abd24b8c22f35a7ef080
MD5 ec4a137790b840590817729574235917
BLAKE2b-256 fa5cb981dc5193c3a95cb81bd3e5064bda7aa21b4b043935806f0f62d2591da0

See more details on using hashes here.

File details

Details for the file typedb_driver-3.8.0-py39-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for typedb_driver-3.8.0-py39-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5f6a6507103b6ea1feb074216135031a7d95d548611796c405cb3b2a419e71e
MD5 346ac6f5827f1687958757859835e059
BLAKE2b-256 70c1609f7beb9fca4499db205ef045debaca199d56d9598ec262b6243f1d0ca3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page