code: def test_more_complex_deps_requires_text(self):
      requires = textwrap.dedent(
          """
              dep1
              dep2
  
              [:python_version < "3"]
              dep3
  
              [extra1]
              dep4
              dep6@ git+https://example.com/python/dep.git@v1.0.0
  
              [extra2:python_version < "3"]
              dep5
              """
      )
      deps = sorted(Distribution._deps_from_requires_text(requires))
      expected = [
          "dep1",
          "dep2",
          'dep3; python_version < "3"',
          'dep4; extra == "extra1"',
          'dep5; (python_version < "3") and extra == "extra2"',
          'dep6@ git+https://example.com/python/dep.git@v1.0.0 ; extra == "extra1"',
      ]
      # It's important that the environment marker expression be
      # wrapped in parentheses to avoid the following 'and' binding more
      # tightly than some other part of the environment expression.
  
      assert deps == expected
  
imports: import re
  import textwrap
  import unittest
  import warnings
  import importlib
  import contextlib
  from .None import fixtures
  from importlib.metadata import Distribution, PackageNotFoundError, distribution, entry_points, files, metadata, requires, version
label_desc: Use image node_id 27 for calling the APITests obj's underlying member method code with example usage: obj.test_more_complex_deps_requires_text() without return types