Skip to content

TypeError: expected str, bytes or os.PathLike object, not NoneType #170

Closed
@pawamoy

Description

@pawamoy

With mkdocs-git-revision-date-localized-plugin==1.4.1, in a local clone of https://github.com/mkdocstrings/mkdocstrings:

$ mkdocs gh-deploy --remote-name org-pages --force
  INFO    -  Cleaning site directory
  INFO    -  Building documentation to directory: /media/data/dev/mkdocstrings/site
  ERROR   -  [git-revision-date-localized-plugin] An unexpected error occurred: expected str, bytes or os.PathLike object, not NoneType To ignore this error, set option 'fallback_to_build_date: true'
  multiprocessing.pool.RemoteTraceback: 
  """
  Traceback (most recent call last):
    File "/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.13.2/lib/python3.13/multiprocessing/pool.py", line 125, in worker
      result = (True, func(*args, **kwds))
                      ~~~~^^^^^^^^^^^^^^^
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/mkdocs_git_revision_date_localized_plugin/util.py", line 187, in get_git_commit_timestamp
      raise err
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/mkdocs_git_revision_date_localized_plugin/util.py", line 82, in get_git_commit_timestamp
      realpath = os.path.realpath(path)
    File "<frozen posixpath>", line 394, in realpath
  TypeError: expected str, bytes or os.PathLike object, not NoneType
  """

  The above exception was the direct cause of the following exception:

  Traceback (most recent call last):
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/failprint/runners.py", line 216, in run_function_get_code
      result = func(*args, **kwargs)
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/duty/tools/_mkdocs.py", line 271, in __call__
      return run_mkdocs(self.cli_args)
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/click/core.py", line 1161, in __call__
      return self.main(*args, **kwargs)
             ~~~~~~~~~^^^^^^^^^^^^^^^^^
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/click/core.py", line 1082, in main
      rv = self.invoke(ctx)
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/click/core.py", line 1697, in invoke
      return _process_result(sub_ctx.command.invoke(sub_ctx))
                             ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/click/core.py", line 1443, in invoke
      return ctx.invoke(self.callback, **ctx.params)
             ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/click/core.py", line 788, in invoke
      return __callback(*args, **kwargs)
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/mkdocs/__main__.py", line 315, in gh_deploy_command
      build.build(cfg, dirty=not clean)
      ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/mkdocs/commands/build.py", line 292, in build
      files = config.plugins.on_files(files, config=config)
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/mkdocs/plugins.py", line 593, in on_files
      return self.run_event('files', files, config=config)
             ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/mkdocs/plugins.py", line 566, in run_event
      result = method(item, **kwargs)
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/mkdocs_git_revision_date_localized_plugin/plugin.py", line 184, in on_files
      self.parallel_compute_commit_timestamps(files=files, original_source=original_source, is_first_commit=False)
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/media/data/dev/mkdocstrings/.venv/lib/python3.13/site-packages/mkdocs_git_revision_date_localized_plugin/plugin.py", line 168, in parallel_compute_commit_timestamps
      self.last_revision_commits[src_uri] = result.get()
                                            ~~~~~~~~~~^^
    File "/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.13.2/lib/python3.13/multiprocessing/pool.py", line 774, in get
      raise self._value
  TypeError: expected str, bytes or os.PathLike object, not NoneType

If I set fallback_to_build_date: true as suggested, it doesn't crash 🙂


In another repository (private this time):

$ mkdocs gh-deploy --remote-name upstream --force
  INFO    -  Cleaning site directory
  INFO    -  Building documentation to directory: /media/data/dev/insiders/mkdocstrings-python/site
  WARNING -  [git-revision-date-localized-plugin] Unable to find a git directory and/or git is not installed. To ignore this error, set option 'fallback_to_build_date: true'
  WARNING -  [git-revision-date-localized-plugin] Unable to find a git directory and/or git is not installed. To ignore this error, set option 'fallback_to_build_date: true'
  WARNING -  [git-revision-date-localized-plugin] Unable to find a git directory and/or git is not installed. To ignore this error, set option 'fallback_to_build_date: true'
  WARNING -  [git-revision-date-localized-plugin] Unable to find a git directory and/or git is not installed. To ignore this error, set option 'fallback_to_build_date: true'
  WARNING -  [git-revision-date-localized-plugin] Unable to find a git directory and/or git is not installed. To ignore this error, set option 'fallback_to_build_date: true'
  WARNING -  [git-revision-date-localized-plugin] Unable to find a git directory and/or git is not installed. To ignore this error, set option 'fallback_to_build_date: true'
  multiprocessing.pool.RemoteTraceback: 
  """
  Traceback (most recent call last):
    File "/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.13.2/lib/python3.13/multiprocessing/pool.py", line 125, in worker
      result = (True, func(*args, **kwds))
                      ~~~~^^^^^^^^^^^^^^^
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/mkdocs_git_revision_date_localized_plugin/util.py", line 146, in get_git_commit_timestamp
      raise err
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/mkdocs_git_revision_date_localized_plugin/util.py", line 83, in get_git_commit_timestamp
      git = self._get_repo(realpath)
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/mkdocs_git_revision_date_localized_plugin/util.py", line 45, in _get_repo
      self.repo_cache[path] = Repo(path, search_parent_directories=True).git
                              ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/git/repo/base.py", line 289, in __init__
      raise InvalidGitRepositoryError(epath)
  git.exc.InvalidGitRepositoryError: /tmp/mkdocs_gen_files_cspmnow5/reference
  """

  The above exception was the direct cause of the following exception:

  Traceback (most recent call last):
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/failprint/runners.py", line 216, in run_function_get_code
      result = func(*args, **kwargs)
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/duty/tools/_mkdocs.py", line 271, in __call__
      return run_mkdocs(self.cli_args)
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/click/core.py", line 1161, in __call__
      return self.main(*args, **kwargs)
             ~~~~~~~~~^^^^^^^^^^^^^^^^^
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/click/core.py", line 1082, in main
      rv = self.invoke(ctx)
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/click/core.py", line 1697, in invoke
      return _process_result(sub_ctx.command.invoke(sub_ctx))
                             ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/click/core.py", line 1443, in invoke
      return ctx.invoke(self.callback, **ctx.params)
             ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/click/core.py", line 788, in invoke
      return __callback(*args, **kwargs)
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/mkdocs/__main__.py", line 315, in gh_deploy_command
      build.build(cfg, dirty=not clean)
      ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/mkdocs/commands/build.py", line 292, in build
      files = config.plugins.on_files(files, config=config)
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/mkdocs/plugins.py", line 593, in on_files
      return self.run_event('files', files, config=config)
             ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/mkdocs/plugins.py", line 566, in run_event
      result = method(item, **kwargs)
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/mkdocs_git_revision_date_localized_plugin/plugin.py", line 184, in on_files
      self.parallel_compute_commit_timestamps(files=files, original_source=original_source, is_first_commit=False)
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/media/data/dev/insiders/mkdocstrings-python/.venv/lib/python3.13/site-packages/mkdocs_git_revision_date_localized_plugin/plugin.py", line 168, in parallel_compute_commit_timestamps
      self.last_revision_commits[src_uri] = result.get()
                                            ~~~~~~~~~~^^
    File "/home/pawamoy/.basher-packages/pyenv/pyenv/versions/3.13.2/lib/python3.13/multiprocessing/pool.py", line 774, in get
      raise self._value
  git.exc.InvalidGitRepositoryError: /tmp/mkdocs_gen_files_cspmnow5/reference

Let me know if I should open a separate issue for the second traceback 😄

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions