You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have searched the issue tracker and believe that this is not a duplicate.
Make sure you run commands with -v flag before pasting the output.
Steps to reproduce
pdm add "pyobjc; sys_platform == 'darwin'" -v
Adding packages to default dependencies: pyobjc
======== Start resolving requirements ========
pyobjc; sys_platform == "darwin"
Adding requirement pyobjc; sys_platform == "darwin"
Adding requirement pyobjc-core==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-AddressBook==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-AppleScriptKit==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-ApplicationServices==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-Automator==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-CFNetwork==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-Cocoa==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-CoreAudio==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-CoreAudioKit==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-CoreData==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-CoreMIDI==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-CoreServices==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-CoreText==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-DiscRecording==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-DiscRecordingUI==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-DiskArbitration==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-DVDPlayback==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-ExceptionHandling==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-InstallerPlugins==7.2(from pyobjc 7.2)
Adding requirement pyobjc-framework-LatentSemanticMapping==7.2(from pyobjc 7.2)
[ .... more output .... ]
======== Ending round 133 ========
Finish resolving
======== Resolution Result ========
Stable pins:
pyobjc 7.2
pyobjc-framework-applescriptkit 7.2
pyobjc-framework-applicationservices 7.2
pyobjc-framework-automator 7.2
pyobjc-framework-discrecordingui 7.2
pyobjc-framework-diskarbitration 7.2
pyobjc-framework-dvdplayback 7.2
pyobjc-framework-exceptionhandling 7.2
pyobjc-framework-installerplugins 7.2
pyobjc-framework-latentsemanticmapping 7.2
pyobjc-framework-launchservices 7.2
pyobjc-framework-osakit 7.2
pyobjc-framework-preferencepanes 7.2
pyobjc-framework-securityfoundation 7.2
pyobjc-framework-searchkit 7.2
pyobjc-framework-message 7.2
pyobjc-framework-applescriptobjc 7.2
pyobjc-framework-iosurface 7.2
pyobjc-framework-netfs 7.2
pyobjc-framework-opendirectory 7.2
pyobjc-framework-servicemanagement 7.2
pyobjc-framework-ituneslibrary 7.2
pyobjc-framework-servernotification 7.2
pyobjc-framework-accounts 7.2
pyobjc-framework-eventkit 7.2
pyobjc-framework-social 7.2
pyobjc-framework-mediaaccessibility 7.2
pyobjc-framework-medialibrary 7.2
pyobjc-framework-cloudkit 7.2
pyobjc-framework-findersync 7.2
pyobjc-framework-localauthentication 7.2
pyobjc-framework-mediaplayer 7.2
pyobjc-framework-colorsync 7.2
pyobjc-framework-adsupport 7.2
pyobjc-framework-businesschat 7.2
pyobjc-framework-naturallanguage 7.2
pyobjc-framework-videosubscriberaccount 7.2
pyobjc-framework-corehaptics 7.2
pyobjc-framework-coremotion 7.2
pyobjc-framework-devicecheck 7.2
pyobjc-framework-executionpolicy 7.2
pyobjc-framework-fileproviderui 7.2
pyobjc-framework-linkpresentation 7.2
pyobjc-framework-pencilkit 7.2
pyobjc-framework-quicklookthumbnailing 7.2
pyobjc-framework-soundanalysis 7.2
pyobjc-framework-adservices 7.2
pyobjc-framework-apptrackingtransparency 7.2
pyobjc-framework-callkit 7.2
pyobjc-framework-kernelmanagement 7.2
pyobjc-framework-metalperformanceshadersgraph 7.2
pyobjc-framework-mlcompute 7.2
pyobjc-framework-screentime 7.2
pyobjc-framework-uniformtypeidentifiers 7.2
pyobjc-framework-usernotificationsui 7.2
pyobjc-framework-calendarstore 7.2
pyobjc-framework-collaboration 7.2
pyobjc-framework-dictionaryservices 7.2
pyobjc-framework-instantmessage 7.2
pyobjc-framework-interfacebuilderkit 7.2
pyobjc-framework-pubsub 7.2
pyobjc-framework-addressbook 7.2
pyobjc-framework-cfnetwork 7.2
pyobjc-framework-coreaudiokit 7.2
pyobjc-framework-coredata 7.2
pyobjc-framework-coremidi 7.2
pyobjc-framework-coreservices 7.2
pyobjc-framework-discrecording 7.2
pyobjc-framework-screensaver 7.2
pyobjc-framework-securityinterface 7.2
pyobjc-framework-syncservices 7.2
pyobjc-framework-systemconfiguration 7.2
pyobjc-framework-webkit 7.2
pyobjc-framework-corelocation 7.2
pyobjc-framework-corewlan 7.2
pyobjc-framework-imagecapturecore 7.2
pyobjc-framework-avfoundation 7.2
pyobjc-framework-coremediaio 7.2
pyobjc-framework-imserviceplugin 7.2
pyobjc-framework-storekit 7.2
pyobjc-framework-scenekit 7.2
pyobjc-framework-gamecenter 7.2
pyobjc-framework-gamekit 7.2
pyobjc-framework-videotoolbox 7.2
pyobjc-framework-avkit 7.2
pyobjc-framework-gamecontroller 7.2
pyobjc-framework-mapkit 7.2
pyobjc-framework-mediatoolbox 7.2
pyobjc-framework-spritekit 7.2
pyobjc-framework-corebluetooth 7.2
pyobjc-framework-cryptotokenkit 7.2
pyobjc-framework-multipeerconnectivity 7.2
pyobjc-framework-notificationcenter 7.2
pyobjc-framework-contacts 7.2
pyobjc-framework-contactsui 7.2
pyobjc-framework-metal 7.2
pyobjc-framework-metalkit 7.2
pyobjc-framework-modelio 7.2
pyobjc-framework-networkextension 7.2
pyobjc-framework-photos 7.2
pyobjc-framework-photosui 7.2
pyobjc-framework-safariservices 7.2
pyobjc-framework-gameplaykit 7.2
pyobjc-framework-intents 7.2
pyobjc-framework-vision 7.2
pyobjc-framework-network 7.2
pyobjc-framework-usernotifications 7.2
pyobjc-framework-authenticationservices 7.2
pyobjc-framework-automaticassessmentconfiguration 7.2
pyobjc-framework-oslog 7.2
pyobjc-framework-pushkit 7.2
pyobjc-framework-speech 7.2
pyobjc-framework-systemextensions 7.2
pyobjc-framework-accessibility 7.2
pyobjc-framework-classkit 7.2
pyobjc-framework-passkit 7.2
pyobjc-framework-replaykit 7.2
pyobjc-framework-virtualization 7.2
pyobjc-framework-fsevents 7.2
pyobjc-framework-inputmethodkit 7.2
pyobjc-framework-scriptingbridge 7.2
pyobjc-core 7.2
pyobjc-framework-cocoa 7.2
pyobjc-framework-coreaudio 7.2
pyobjc-framework-coretext 7.2
pyobjc-framework-quartz 7.2
pyobjc-framework-security 7.2
pyobjc-framework-coremedia 7.2
pyobjc-framework-libdispatch 7.2
pyobjc-framework-fileprovider 7.2
Extracting package metadata
Traceback (most recent call last):
File "/tmp/.venv/bin/pdm", line 8, in
sys.exit(main())
File "/tmp/.venv/lib/python3.7/site-packages/pdm/core.py", line 184, in main
return Core().main(args)
File "/tmp/.venv/lib/python3.7/site-packages/pdm/core.py", line 145, in main
raise cast(Exception, err).with_traceback(traceback)
File "/tmp/.venv/lib/python3.7/site-packages/pdm/core.py", line 140, in main
f(options.project, options)
File "/tmp/.venv/lib/python3.7/site-packages/pdm/cli/commands/add.py", line 43, in handle
packages=options.packages,
File "/tmp/.venv/lib/python3.7/site-packages/pdm/cli/actions.py", line 173, in do_add
resolved = do_lock(project, strategy, tracked_names, reqs)
File "/tmp/.venv/lib/python3.7/site-packages/pdm/cli/actions.py", line 68, in do_lock
resolve_max_rounds,
File "/tmp/.venv/lib/python3.7/site-packages/pdm/resolver/core.py", line 153, in resolve
all_metasets = extract_metadata(result)
File "/tmp/.venv/lib/python3.7/site-packages/pdm/resolver/core.py", line 107, in extract_metadata
new_metasets[k] = _build_metaset(crit, all_metasets, keep_unresolved)
File "/tmp/.venv/lib/python3.7/site-packages/pdm/resolver/core.py", line 59, in _build_metaset
metaset = metaset | merged if metaset is not None else merged
File "/tmp/.venv/lib/python3.7/site-packages/pdm/resolver/metaset.py", line 36, in __or__
if any([self.marker_no_python, other.marker_no_python])
File "/tmp/.venv/lib/python3.7/site-packages/pdm/models/markers.py", line 44, in __or__
return type(self)(marker_str)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/packaging/markers.py", line 307, in __init__
self._markers = _coerce_parse_result(MARKER.parseString(marker))
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 1943, in parseString
loc, tokens = self._parse(instring, 0)
[ .... more traceback .... ]
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 1683, in _parseNoCache
loc, tokens = self.parseImpl(instring, preloc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 4069, in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 1683, in _parseNoCache
loc, tokens = self.parseImpl(instring, preloc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 4781, in parseImpl
return super(ZeroOrMore, self).parseImpl(instring, loc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 4697, in parseImpl
loc, tokens = self_expr_parse(instring, loc, doActions, callPreParse=False)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 1683, in _parseNoCache
loc, tokens = self.parseImpl(instring, preloc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 4069, in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 1683, in _parseNoCache
loc, tokens = self.parseImpl(instring, preloc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 4462, in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 1683, in _parseNoCache
loc, tokens = self.parseImpl(instring, preloc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 4052, in parseImpl
loc, resultlist = self.exprs[0]._parse(instring, loc, doActions, callPreParse=False)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 1683, in _parseNoCache
loc, tokens = self.parseImpl(instring, preloc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 4254, in parseImpl
ret = e._parse(instring, loc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 1683, in _parseNoCache
loc, tokens = self.parseImpl(instring, preloc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 4462, in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 1683, in _parseNoCache
loc, tokens = self.parseImpl(instring, preloc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 4052, in parseImpl
loc, resultlist = self.exprs[0]._parse(instring, loc, doActions, callPreParse=False)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 1683, in _parseNoCache
loc, tokens = self.parseImpl(instring, preloc, doActions)
File "/tmp/.venv/lib/python3.7/site-packages/pip/_vendor/pyparsing.py", line 4254, in parseImpl
ret = e._parse(instring, loc, doActions)
RecursionError: maximum recursion depth exceede
Actual behavior
Fails to add pyobjct **with the sys_platform == 'darwin' marker. Adding pyobjc without the marker works, although there are ovious failures installing because I'm on linux.
Expected behavior
Add pyobjc; sys_platform == 'darwin' to pyproject.toml
For those who come to this issue, this is caused by the marker resolution without deduplication. pyobjc is a parent package that defines a large number of dependencies, with markers. As a result, the marker of a low-level dependency get resolved to the combination of all these markers. Such a long marker makes the marker parser fail due to maximum recursion error.
Make sure you run commands with
-v
flag before pasting the output.Steps to reproduce
pdm add "pyobjc; sys_platform == 'darwin'" -v
Actual behavior
Fails to add pyobjct **with the
sys_platform == 'darwin'
marker. Adding pyobjc without the marker works, although there are ovious failures installing because I'm on linux.Expected behavior
Add
pyobjc; sys_platform == 'darwin'
to pyproject.tomlEnvironment Information
The text was updated successfully, but these errors were encountered: