Issue 1:
Describe the bug

I have tried to update my dependencies with poetry update, getting 'EmptyConstraint' object has no attribute 'allows' issue.

Pinning down the version of sqlalchemy to 1.4,22 fixes the issue.

I think recent changes in setup.cfg might cause the issue, more specifically the below line:

greenlet != 0.4.17;python_version>="3" and platform_machine in 'x86_64 X86_64 aarch64 AARCH64 ppc64le PPC64LE amd64 AMD64 win32 WIN32'

To Reproduce

`poetry update` # from an environment with e.g. version 1.4.22

Error

'EmptyConstraint' object has no attribute 'allows'

Versions

OS: Windows 11

Python: 3.9.6

SQLAlchemy: 1.4.23

Additional context

No response

Issue 2:
Describe the bug

Poetry cannot install sqlalchemy 1.4.23. Using poetry update on an existing project with sqlalchemy pinned to 1.4.* fails with a stack trace in poetry. Pinning sqlalchemy to 1.4.22 works.

Perhaps this may be classed as a poetry bug but it did work with all previous versions of sqlalchemy.

To Reproduce

In an empty directory and a suitable virtual environment use poetry to create a new project then install packages:

$ poetry init --no-interaction --name dummy --dependency sqlalchemy=="1.4.*"

This command will guide you through creating your pyproject.toml config.

You can specify a package in the following forms:
- A single name (requests)
- A name and a constraint (requests@^2.23.0)
- A git url (git+https://github.com/python-poetry/poetry.git)
- A git url with a revision (git+https://github.com/python-poetry/poetry.git#develop)
- A file path (../my-package/my-package.whl)
- A directory (../my-package/)
- A url (https://example.com/packages/my-package-0.1.0.tar.gz)

$ poetry install
Updating dependencies
Resolving dependencies... (0.2s)

Writing lock file

AttributeError

'EmptyConstraint' object has no attribute 'allows'

at ~/.poetry/lib/poetry/_vendor/py3.9/poetry/core/version/markers.py:291 in validate
287│
288│ if self._name not in environment:
289│ return True
290│
→ 291│ return self._constraint.allows(self._parser(environment[self._name]))
292│
293│ def without_extras(self): # type: () -> MarkerTypes
294│ return self.exclude("extra")
295│

The same sequence works with sqlalchemy 1.4.22:

$ rm poetry.lock pyproject.toml
$ poetry init --no-interaction --name dummy --dependency sqlalchemy=="1.4.22"

This command will guide you through creating your pyproject.toml config.

You can specify a package in the following forms:
- A single name (requests)
- A name and a constraint (requests@^2.23.0)
- A git url (git+https://github.com/python-poetry/poetry.git)
- A git url with a revision (git+https://github.com/python-poetry/poetry.git#develop)
- A file path (../my-package/my-package.whl)
- A directory (../my-package/)
- A url (https://example.com/packages/my-package-0.1.0.tar.gz)

$ poetry install
Updating dependencies
Resolving dependencies... (0.1s)

Writing lock file

Package operations: 2 installs, 0 updates, 0 removals

• Installing greenlet (1.1.1)
• Installing sqlalchemy (1.4.22)

Error

Complete stack trace running poetry install -v:

Stack trace:

14 ~/.poetry/lib/poetry/_vendor/py3.9/clikit/console_application.py:131 in run
status_code = command.handle(parsed_args, io)

13 ~/.poetry/lib/poetry/_vendor/py3.9/clikit/api/command/command.py:120 in handle
status_code = self._do_handle(args, io)

12 ~/.poetry/lib/poetry/_vendor/py3.9/clikit/api/command/command.py:171 in _do_handle
return getattr(handler, handler_method)(args, io, self)

11 ~/.poetry/lib/poetry/_vendor/py3.9/cleo/commands/command.py:92 in wrap_handle
return self.handle()

10 ~/.poetry/lib/poetry/console/commands/install.py:71 in handle
return_code = self._installer.run()

9 ~/.poetry/lib/poetry/installation/installer.py:103 in run
return self._do_install(local_repo)

8 ~/.poetry/lib/poetry/installation/installer.py:305 in _do_install
ops = solver.solve(use_latest=self._whitelist)

7 ~/.poetry/lib/poetry/puzzle/solver.py:65 in solve
packages, depths = self._solve(use_latest=use_latest)

6 ~/.poetry/lib/poetry/puzzle/solver.py:233 in _solve
result = resolve_version(

5 ~/.poetry/lib/poetry/mixology/__init__.py:7 in resolve_version
return solver.solve()

4 ~/.poetry/lib/poetry/mixology/version_solver.py:84 in solve
next = self._choose_package_version()

3 ~/.poetry/lib/poetry/mixology/version_solver.py:400 in _choose_package_version
version = self._provider.complete_package(version)

2 ~/.poetry/lib/poetry/puzzle/provider.py:479 in complete_package
if self._env and not dep.marker.validate(self._env.marker_env):

1 ~/.poetry/lib/poetry/_vendor/py3.9/poetry/core/version/markers.py:456 in validate
if not m.validate(environment):

AttributeError

'EmptyConstraint' object has no attribute 'allows'

at ~/.poetry/lib/poetry/_vendor/py3.9/poetry/core/version/markers.py:291 in validate
287│
288│ if self._name not in environment:
289│ return True
290│
→ 291│ return self._constraint.allows(self._parser(environment[self._name]))
292│
293│ def without_extras(self): # type: () -> MarkerTypes
294│ return self.exclude("extra")
295│

Versions

OS: MacOS 10.14.6 (also CircleCI docker image based on Ubuntu 18.04.5 LTS)

Python: 3.9.5

Poetry 1.1.7

SQLAlchemy: 1.4.23

Database: N/A

DBAPI: N/A

Additional context

No response