Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Fix non-in-place building #127

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 20, 2022

Conversation

masklinn
Copy link
Contributor

It's unclear when that stopped (or possibly whether it's ever worked), but "regular" commands which don't build in-place (e.g. a simple setup.py build) have not worked in a while, because the overrides on tasks trigger build_regexes before the task itself (to say nothing of invoking build_regexes directly).

As a result, the build_dir does not exist yet unless there's an old build_dir remaining for some reason, and trying to create the file crashes.

Ensure the build dir exists before trying to write _regexes.py. There's a minor TOCTOU in order to handle Python 2's os.makedirs, as it doesn't have exist_ok.

It's unclear when that stopped (or possibly whether it's ever worked),
but "regular" commands which don't build in-place (e.g. a simple
`setup.py build`) have not worked in a while, because the overrides on
tasks trigger `build_regexes` before the task itself (to say nothing
of invoking `build_regexes` directly).

As a result, the build_dir does not exist yet unless there's an old
build_dir remaining for some reason, and trying to create the file
crashes.

Ensure the build dir exists before trying to write
`_regexes.py`. There's a minor TOCTOU in order to handle Python 2's
`os.makedirs`, as it doesn't have `exist_ok`.
@masklinn masklinn force-pushed the fix-non-in-place-building branch from 25372cc to 19a651e Compare August 20, 2022 13:56
@masklinn masklinn merged commit 6150b61 into ua-parser:master Aug 20, 2022
@masklinn masklinn deleted the fix-non-in-place-building branch August 20, 2022 14:00
masklinn added a commit to masklinn/uap-python that referenced this pull request Aug 20, 2022
- removed version bound from `setup_requires`, allows building from
  source when only PyYaml 6.0 is available (and downloading 5.4 is
  not), ua-parser#121, ua-parser#125
- added type assertion to parser lookup, to make the error clearer on
  type error, ua-parser#122, ua-parser#123
- fixed `setup.py build_regexes` and `setup.py build` for non-in-place
  builds, ua-parser#127
@masklinn masklinn mentioned this pull request Aug 20, 2022
masklinn added a commit that referenced this pull request Aug 20, 2022
- removed version bound from `setup_requires`, allows building from
  source when only PyYaml 6.0 is available (and downloading 5.4 is
  not), #121, #125
- added type assertion to parser lookup, to make the error clearer on
  type error, #122, #123
- fixed `setup.py build_regexes` and `setup.py build` for non-in-place
  builds, #127
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant
Morty Proxy This is a proxified and sanitized view of the page, visit original site.