Closed florimondmanca closed 5 years ago
First, thanks for all the great work on EdgeDB. The Python driver looks fab, and I especially like the built-in async support.
Thanks :)
why my editor wouldn't autocomplete the con object.
Maybe we should just partially type it (the Connection and Transaction types)? Typing everything might not be easy because a lot of the code is written in Cython...
tackling public-facing APIs only first
for your described problem annotating the public api only would be sufficient and be indeed a very charming feature. for the non-public parts, leaving it with no annotations can be a compromise as the typing ecosystem isn't mature yet (while continuously improving) and some phenomena aren't annotable with beauty.
Thanks to both for your prompt replies!
Maybe we should just partially type it (the Connection and Transaction types)?
I see! After looking at the docs again, the connection and transaction objects seem to be the main APIs indeed, so only annotating these would already be a great step forward.
After looking at the docs again, the connection and transaction objects seem to be the main APIs indeed, so only annotating these would already be a great step forward.
Feel free to go ahead and submit a PR! We can then release an updated version shortly.
I tried setting up the project as described in Developing EdgeDB, but unfortunately I am running into issues when building EdgeDB:
$ pip install -v -e ".[docs,test]"
...
Installing collected packages: edgedb-server
Running setup.py develop for edgedb-server
Running command /Users/Florimond/Developer/python-projects/edgedb/venv/bin/python -c 'import setuptools, tokenize;__file__='"'"'/Users/Florimond/Developer/python-projects/edgedb/edgedb/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps
running develop
Parsing.Spec: Introspecting to acquire formal grammar specification...
Parsing.Spec: 194 tokens, 369 non-terminals, 1077 productions
Parsing.Spec: Attempting to use pickle from file "build/lib/edb/edgeql/parser/grammar/single.pickle"...
Parsing.Spec: Pickle open failed: Exception <class 'FileNotFoundError'>: [Errno 2] No such file or directory: 'build/lib/edb/edgeql/parser/grammar/single.pickle'
And indeed, the file doesn't exist:
$ tree build
build
└── lib
└── edb
└── edgeql
└── parser
└── grammar
5 directories, 0 files
I am running macOS Mojave and Python 3.7.2. Any idea where that might come from?
@florimondmanca Is that the only output you got? Missing parser pickle is expected on a fresh build.
@elprans No it's not, but the initial output was extremely large. I ran the command again, and here's what I've got (in full):
$ pip install -v -e ".[test,docs]"
Created temporary directory: /private/var/folders/ld/jnnnnsfd7r7cyvbwygss3blw0000gn/T/pip-ephem-wheel-cache-m_6gkb23
Created temporary directory: /private/var/folders/ld/jnnnnsfd7r7cyvbwygss3blw0000gn/T/pip-req-tracker-a0xxstki
Created requirements tracker '/private/var/folders/ld/jnnnnsfd7r7cyvbwygss3blw0000gn/T/pip-req-tracker-a0xxstki'
Created temporary directory: /private/var/folders/ld/jnnnnsfd7r7cyvbwygss3blw0000gn/T/pip-install-1tu6zglc
Obtaining file:///Users/Florimond/Developer/python-projects/edgedb/edgedb
Added file:///Users/Florimond/Developer/python-projects/edgedb/edgedb to build tracker '/private/var/folders/ld/jnnnnsfd7r7cyvbwygss3blw0000gn/T/pip-req-tracker-a0xxstki'
Running setup.py (path:/Users/Florimond/Developer/python-projects/edgedb/edgedb/setup.py) egg_info for package from file:///Users/Florimond/Developer/python-projects/edgedb/edgedb
Running command python setup.py egg_info
running egg_info
writing edgedb_server.egg-info/PKG-INFO
writing dependency_links to edgedb_server.egg-info/dependency_links.txt
writing entry points to edgedb_server.egg-info/entry_points.txt
writing requirements to edgedb_server.egg-info/requires.txt
writing top-level names to edgedb_server.egg-info/top_level.txt
Compiling edb/server/pgproto/pgproto.pyx because it changed.
Compiling edb/server/dbview/dbview.pyx because it changed.
Compiling edb/server/mng_port/edgecon.pyx because it changed.
Compiling edb/server/cache/stmt_cache.pyx because it changed.
Compiling edb/server/pgcon/pgcon.pyx because it changed.
Compiling edb/server/http/http.pyx because it changed.
Compiling edb/server/http_edgeql_port/protocol.pyx because it changed.
Compiling edb/server/http_graphql_port/protocol.pyx because it changed.
[1/8] Cythonizing edb/server/cache/stmt_cache.pyx
[2/8] Cythonizing edb/server/dbview/dbview.pyx
[3/8] Cythonizing edb/server/http/http.pyx
[4/8] Cythonizing edb/server/http_edgeql_port/protocol.pyx
[5/8] Cythonizing edb/server/http_graphql_port/protocol.pyx
[6/8] Cythonizing edb/server/mng_port/edgecon.pyx
[7/8] Cythonizing edb/server/pgcon/pgcon.pyx
[8/8] Cythonizing edb/server/pgproto/pgproto.pyx
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.esdl' under directory 'edb'
writing manifest file 'edgedb_server.egg-info/SOURCES.txt'
Source in /Users/Florimond/Developer/python-projects/edgedb/edgedb has version 1.0a2.dev76+gcb46f983, which satisfies requirement edgedb-server==1.0a2.dev76+gcb46f983 from file:///Users/Florimond/Developer/python-projects/edgedb/edgedb
Removed edgedb-server==1.0a2.dev76+gcb46f983 from file:///Users/Florimond/Developer/python-projects/edgedb/edgedb from build tracker '/private/var/folders/ld/jnnnnsfd7r7cyvbwygss3blw0000gn/T/pip-req-tracker-a0xxstki'
Installing extra requirements: 'docs,test'
Requirement already satisfied: asyncpg~=0.18.2 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (0.18.3)
Requirement already satisfied: click~=6.7 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (6.7)
Requirement already satisfied: httptools>=0.0.13 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (0.0.13)
Requirement already satisfied: immutables>=0.9 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (0.9)
Requirement already satisfied: parsing~=1.6.1 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (1.6.1)
Requirement already satisfied: prompt_toolkit>=2.0.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (2.0.9)
Requirement already satisfied: psutil~=5.6.1 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (5.6.3)
Requirement already satisfied: Pygments~=2.3.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (2.3.1)
Requirement already satisfied: setproctitle~=1.1.10 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (1.1.10)
Requirement already satisfied: setuptools_scm~=3.2.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (3.2.0)
Requirement already satisfied: uvloop~=0.12.2 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (0.12.2)
Requirement already satisfied: graphql-core~=2.1.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (2.1)
Requirement already satisfied: promise~=2.2.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (2.2.1)
Requirement already satisfied: edgedb~=0.6.1 in /Users/Florimond/Developer/python-projects/edgedb/edgedb-python (from edgedb-server==1.0a2.dev76+gcb46f983) (0.6.1)
Requirement already satisfied: Sphinx~=2.0.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (2.0.1)
Requirement already satisfied: lxml~=4.2.5 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (4.2.6)
Requirement already satisfied: sphinxcontrib-asyncio~=0.2.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (0.2.0)
Requirement already satisfied: flake8~=3.7.5 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (3.7.7)
Requirement already satisfied: pycodestyle~=2.5.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (2.5.0)
Requirement already satisfied: coverage~=4.5.2 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (4.5.3)
Requirement already satisfied: requests-xml~=0.2.3 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from edgedb-server==1.0a2.dev76+gcb46f983) (0.2.3)
Requirement already satisfied: six>=1.8.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from parsing~=1.6.1->edgedb-server==1.0a2.dev76+gcb46f983) (1.12.0)
Requirement already satisfied: wcwidth in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from prompt_toolkit>=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (0.1.7)
Requirement already satisfied: rx>=1.6.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from graphql-core~=2.1.0->edgedb-server==1.0a2.dev76+gcb46f983) (1.6.1)
Requirement already satisfied: snowballstemmer>=1.1 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (1.2.1)
Requirement already satisfied: packaging in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (19.0)
Requirement already satisfied: requests>=2.5.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (2.22.0)
Requirement already satisfied: sphinxcontrib-qthelp in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (1.0.2)
Requirement already satisfied: sphinxcontrib-serializinghtml in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (1.1.3)
Requirement already satisfied: docutils>=0.12 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (0.14)
Requirement already satisfied: imagesize in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (1.1.0)
Requirement already satisfied: sphinxcontrib-applehelp in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (1.0.1)
Requirement already satisfied: sphinxcontrib-jsmath in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (1.0.1)
Requirement already satisfied: alabaster<0.8,>=0.7 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (0.7.12)
Requirement already satisfied: setuptools in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (40.6.2)
Requirement already satisfied: sphinxcontrib-htmlhelp in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (1.0.2)
Requirement already satisfied: sphinxcontrib-devhelp in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (1.0.1)
Requirement already satisfied: Jinja2>=2.3 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (2.10.1)
Requirement already satisfied: babel!=2.0,>=1.3 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (2.7.0)
Requirement already satisfied: entrypoints<0.4.0,>=0.3.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from flake8~=3.7.5->edgedb-server==1.0a2.dev76+gcb46f983) (0.3)
Requirement already satisfied: pyflakes<2.2.0,>=2.1.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from flake8~=3.7.5->edgedb-server==1.0a2.dev76+gcb46f983) (2.1.1)
Requirement already satisfied: mccabe<0.7.0,>=0.6.0 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from flake8~=3.7.5->edgedb-server==1.0a2.dev76+gcb46f983) (0.6.1)
Requirement already satisfied: xmljson in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from requests-xml~=0.2.3->edgedb-server==1.0a2.dev76+gcb46f983) (0.2.0)
Requirement already satisfied: parse in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from requests-xml~=0.2.3->edgedb-server==1.0a2.dev76+gcb46f983) (1.12.0)
Requirement already satisfied: pyquery in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from requests-xml~=0.2.3->edgedb-server==1.0a2.dev76+gcb46f983) (1.4.0)
Requirement already satisfied: w3lib in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from requests-xml~=0.2.3->edgedb-server==1.0a2.dev76+gcb46f983) (1.20.0)
Requirement already satisfied: fake-useragent in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from requests-xml~=0.2.3->edgedb-server==1.0a2.dev76+gcb46f983) (0.1.11)
Requirement already satisfied: pyparsing>=2.0.2 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from packaging->Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (2.4.0)
Requirement already satisfied: certifi>=2017.4.17 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from requests>=2.5.0->Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (2019.6.16)
Requirement already satisfied: idna<2.9,>=2.5 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from requests>=2.5.0->Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (2.8)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from requests>=2.5.0->Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (1.25.3)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from requests>=2.5.0->Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (3.0.4)
Requirement already satisfied: MarkupSafe>=0.23 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from Jinja2>=2.3->Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (1.1.1)
Requirement already satisfied: pytz>=2015.7 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from babel!=2.0,>=1.3->Sphinx~=2.0.0->edgedb-server==1.0a2.dev76+gcb46f983) (2019.1)
Requirement already satisfied: cssselect>0.7.9 in /Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages (from pyquery->requests-xml~=0.2.3->edgedb-server==1.0a2.dev76+gcb46f983) (1.0.3)
Installing collected packages: edgedb-server
Running setup.py develop for edgedb-server
Running command /Users/Florimond/Developer/python-projects/edgedb/venv/bin/python -c 'import setuptools, tokenize;__file__='"'"'/Users/Florimond/Developer/python-projects/edgedb/edgedb/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps
running develop
Parsing.Spec: Introspecting to acquire formal grammar specification...
Parsing.Spec: 194 tokens, 369 non-terminals, 1077 productions
Parsing.Spec: Attempting to use pickle from file "build/lib/edb/edgeql/parser/grammar/single.pickle"...
Parsing.Spec: Pickle open failed: Exception <class 'FileNotFoundError'>: [Errno 2] No such file or directory: 'build/lib/edb/edgeql/parser/grammar/single.pickle'
I've never worked on a Cythonized project before so this is all pretty new to me.
You aren't interrupting it, are you? If may appear to hang after that message, but it's not, the parsers are getting built and that takes a while.
@elprans Actually I was! 🤦♂ Thanks.
I've just run into in another issue when running edb test
:
Collected 2333/2333 tests.
Using up to 2 processes to run tests.
Populating test databases... server bootstrap did not complete successfully, removing the data directory
================================ Exception occurred: role "florimond" does not exist ================================
1. asyncpg.exceptions.UndefinedObjectError: role "florimond" does not exist
----------------------------------------------------- Traceback -----------------------------------------------------
/Users/Florimond/.pyenv/versions/3.7.2/lib/python3.7/runpy.py, line 193, in _run_module_as_main
> "__main__", mod_spec)
/Users/Florimond/.pyenv/versions/3.7.2/lib/python3.7/runpy.py, line 85, in _run_code
> exec(code, run_globals)
/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/main.py, line 425, in <module>
> main()
/Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages/click/core.py, line 722, in __call__
> return self.main(*args, **kwargs)
/Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages/click/core.py, line 697, in main
> rv = self.invoke(ctx)
/Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages/click/core.py, line 895, in invoke
> return ctx.invoke(self.callback, **ctx.params)
/Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages/click/core.py, line 535, in invoke
> return callback(*args, **kwargs)
/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/main.py, line 416, in main
> server_main(**kwargs)
/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/main.py, line 408, in server_main
> run_server(kwargs)
/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/main.py, line 287, in run_server
> need_cluster_restart = _init_cluster(cluster, args)
/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/main.py, line 116, in _init_cluster
> need_restart = asyncio.run(bootstrap.bootstrap(cluster, bootstrap_args))
/Users/Florimond/.pyenv/versions/3.7.2/lib/python3.7/asyncio/runners.py, line 43, in run
> return loop.run_until_complete(main)
uvloop/loop.pyx, line 1451, in uvloop.loop.Loop.run_until_complete
/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/bootstrap.py, line 589, in bootstrap
> cluster=cluster)
/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/bootstrap.py, line 498, in _ensure_edgedb_database
> await _execute_block(conn, block)
/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/bootstrap.py, line 80, in _execute_block
> await _execute(conn, sql_text)
/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/bootstrap.py, line 72, in _execute
> return await _statement(conn, query, *args, method='execute')
/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/bootstrap.py, line 68, in _statement
> return await getattr(conn, method)(query, *args)
/Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages/asyncpg/connection.py, line 273, in execute
> return await self._protocol.query(query, timeout)
asyncpg/protocol/protocol.pyx, line 316, in query
asyncpg.exceptions.UndefinedObjectError: role "florimond" does not exist
Shutting down test cluster... OK.
Traceback (most recent call last):
File "/Users/Florimond/Developer/python-projects/edgedb/venv/bin/edb", line 11, in <module>
load_entry_point('edgedb-server', 'console_scripts', 'edb')()
File "/Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/Florimond/Developer/python-projects/edgedb/venv/lib/python3.7/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/tools/test/__init__.py", line 165, in test
result = test_runner.run(suite)
File "/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/tools/test/runner.py", line 696, in run
return self._run(test)
File "/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/tools/test/runner.py", line 713, in _run
cluster = tb._init_cluster(cleanup_atexit=False)
File "/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/testbase/server.py", line 201, in _init_cluster
cluster.init(server_settings=init_settings)
File "/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/cluster.py", line 164, in init
self._init(self._pg_cluster)
File "/Users/Florimond/Developer/python-projects/edgedb/edgedb/edb/server/cluster.py", line 214, in _init
f'edgedb-server --bootstrap failed with '
edb.server.cluster.ClusterError: edgedb-server --bootstrap failed with exit code 1
(I'm getting the same output from edb inittestdb
.)
I traced this down to the execution of this line. The SQL command does contain my username, capitalized correctly:
CREATE DATABASE "Florimond" WITH TEMPLATE=edgedb0 OWNER=Florimond;
I figured this was the opportunity to finally lowercase my account username, so I did, and now tests pass, so I'm all set!
In retrospect, maybe the lack of quotes around the owner was the culprit — I didn't think of it before I changed usernames, so now it's hard to verify.
Missing quotes around the owner ident is a bug, I pushed a fix for that.
Hi!
First, thanks for all the great work on EdgeDB. The Python driver looks fab, and I especially like the built-in async support.
Problem description From what I've seen,
edgedb-python
public-facing APIs do not provide type annotations. I discovered this by usingedgedb.async_connect()
and wondering why my editor wouldn't autocomplete thecon
object.Proposed solution Since
edgedb-python
is targeting Python 3.6+, I believe it should fully embrace type hints. Adding these would add a lot in terms of IDE support and developer productivity.Implementation ideas If not, I'd be very glad to give a helping hand adding these to the library. The PR might be quite big — should we consider splitting the work by tackling public-facing APIs only first? Let me know!