emmett-framework / emmett

The web framework for inventors
Other
1.04k stars 70 forks source link

Poetry cannot install Emmett #310

Closed zvolsky closed 3 years ago

zvolsky commented 3 years ago

Py 3.9, clear (just initialized) Poetry virtual environment (poetry init + poetry shell). Hi, I think Poetry is the best Python package manager at this time. However it has problem with Emmet for now:

(emmett-HhKsSRhV-py3.9) mirek@debian-mirek:~/emt/emmett/emmett$ poetry add emmett Using version ^2.1.4 for emmett

Updating dependencies Resolving dependencies... (0.0s)

AssertionError

at ~/.poetry/lib/poetry/mixology/incompatibility.py:111 in str 107│ ) 108│ 109│ def str(self): 110│ if isinstance(self._cause, DependencyCause): → 111│ assert len(self._terms) == 2 112│ 113│ depender = self._terms[0] 114│ dependee = self._terms[1] 115│ assert depender.is_positive()

zvolsky commented 3 years ago

I haven't found the reason. To start debug Poetry it is good in provider.py, def progress(self), add such 1st line: yield Then you can normally breakpoint(). The problem cause which poetry reports is RootCause (or DependencyCause??). No idea what this means.

gi0baro commented 3 years ago

@zvolsky I'm using poetry too, and I just tested (Python 3.9):

giovanni@altair ~/Development/Python/foobar ❯ poetry add emmett
Creating virtualenv foobar in /Users/giovanni/Development/Python/foobar/.venv
Using version ^2.1.4 for emmett

Updating dependencies
Resolving dependencies... (0.3s)

Writing lock file

Package operations: 20 installs, 0 updates, 0 removals

  - Installing six (1.15.0)
  - Installing click (7.1.2)
  - Installing h11 (0.10.0)
  - Installing hpack (4.0.0)
  - Installing hyperframe (6.0.0)
  - Installing python-dateutil (2.8.1)
  - Installing pytzdata (2020.1)
  - Installing pyyaml (5.3.1)
  - Installing h2 (4.0.0)
  - Installing httptools (0.1.1)
  - Installing pendulum (2.1.2)
  - Installing pyaes (1.6.1)
  - Installing pydal (17.3)
  - Installing python-rapidjson (0.9.4)
  - Installing renoir (1.3.1)
  - Installing severus (1.0.1)
  - Installing uvicorn (0.12.1)
  - Installing uvloop (0.14.0)
  - Installing websockets (8.1)
  - Installing emmett (2.1.4)

giovanni@altair ~/Development/Python/foobar ❯ poetry env info

Virtualenv
Python:         3.9.0
Implementation: CPython
Path:           /Users/giovanni/Development/Python/foobar/.venv
Valid:          True

System
Platform: darwin
OS:       posix
Python:   /Users/giovanni/.pyenv/versions/3.9.0

maybe you can provide more info about your system environment? Sounds more like a poetry issue in your env rather than an issue with Emmett itself..

zvolsky commented 3 years ago

Hi Giovanni, (I use Debian 10 Testing) But: This is completely my mistake. I made a working directory for my 1st attempt with emmett and have called it emmett/. In such case poetry fails in the way I have described. The message from poetry is not much descriptive, of course. I'm CLOSING the issue.

To other topic, because I don't know where to ask. Maybe you could open a discussion on github or you have an emmett google group already? But to my idea: I use Django at this time but I am not very happy with it (I have used Web2py earlier.) But one thing which is good on Django (I think so) is its ORM. Could emmett be open for usage of Django ORM + migration engine + dumpdata/loaddata + shell (used for Django ORM only)? My idea is to install django as dependency, create project in django (just to have settings.py and set there a DATABASES=..). And then start a database connection from emmett using the Django solution. The last previous thing is of course unknown how to do it. PyDAL is probably good. I am not sure if Django ORM is better. But I think it would be good to have an alternative. Seen from other point of view: It is sure to much of work to create complete fullstack framework. Couldn't good things from Django be reused? (my mail: zvolsky@seznam.cz)