Commit Graph

177 Commits

Author SHA1 Message Date
André Schröder
b2c8b539ac nixos/doc: fix typo in python.section.md 2023-02-01 23:00:16 +01:00
Noah Fontes
3bec41fb5e
doc/python: fix attr name for unittestCheckHook flags
The name should end in Array per the current conventions.

This change also contains some minor formatting fixes, as the heading
levels were inconsistent.
2023-01-28 13:19:41 -08:00
Guillaume Girol
d26caea94b doc: adapt to nativeCheckInputs 2023-01-21 16:42:10 +01:00
Niklas Hambüchen
83481b8708 doc: python: Run hooks in checkPhase 2023-01-03 18:00:31 +01:00
figsoda
403e25e3e3 doc: fix typos 2022-12-17 18:21:48 -05:00
Colin Arnott
bac379f30a
doc: use sri hash syntax
The nixpkgs manual contains references to both sri hash and explicit
sha256 attributes. This is at best confusing to new users. Since the
final destination is exclusive use of sri hashes, see nixos/rfcs#131,
might as well push new users in that direction gently.

Notable exceptions to sri hash support are builtins.fetchTarball,
cataclysm-dda, coq, dockerTools.pullimage, elixir.override, and
fetchCrate. None, other than builtins.fetchTarball, are fundamentally
incompatible, but all currently accept explicit sha256 attributes as
input. Because adding backwards compatibility is out of scope for this
change, they have been left intact, but migration to sri format has been
made for any using old hash formats.

All hashes have been manually tested to be accurate, and updates were
only made for missing upstream artefacts or bugs.
2022-12-04 06:12:18 +00:00
Martin Weinelt
18ab6d062b
sphinxHook: inherit from python3Packages 2022-11-20 15:39:34 +01:00
Guillaume Girol
3befade691 doc: fix python module override example 2022-11-03 19:54:51 +01:00
Frederik Rietdijk
9e02095f4e Python docs: document attribute to use for non-PyPI projects 2022-09-22 13:31:58 +02:00
Martin Weinelt
986c31401e
doc/python: Properly sort pythonRelaxDepsHook in hook list 2022-08-24 23:03:31 +02:00
Martin Weinelt
8a26deba06
doc/python: integrate sphinxHook docs
Improve the documentation by moving it from the hook script into the
Python section in the manual and adding code examples.
2022-08-24 23:02:24 +02:00
Winter
e8fbb38a51 pythonPackages.unittestCheckHook: init 2022-08-13 14:09:43 -04:00
Frederik Rietdijk
2270b66d75 pythonPackagesExtensions: override all Python package sets at once
Python package sets can be overridden by overriding an interpreter
and passing in `packageOverrides = self: super: {...};`. This is fine
in case you need a single interpreter, however, it does not help you
when you want to override all sets.

With this change it is possible to override all sets at once by
appending a list of "extensions" to `pythonPackagesExtensions`.

From reading the implementation you might wonder why a list is used, and
not
`lib.composeExtensions`? The reason is the latter requires knowledge of
the library function. This approach should be easier for most users
as it is similar to how we append to lists of e.g. inputs or patches
when overriding a derivation.
2022-08-06 09:39:39 +02:00
tljuniper
ddb0914a7d doc/languages-frameworks: typos 2022-06-21 09:03:18 +02:00
Martin Weinelt
4566beb390
doc/python: update python version references 2022-06-06 11:46:06 -07:00
Thiago Kenji Okada
2abfe3f700
doc: fix typos in pythonRelaxDepsHook
Co-authored-by: Guillaume Girol <symphorien@users.noreply.github.com>
2022-06-01 18:56:33 +01:00
Thiago Kenji Okada
74a0e97cd4 doc: document pythonRelaxDepsHook 2022-05-29 14:01:30 +01:00
Martin Weinelt
809ffd6cd3
doc/python: use optional-dependencies instead of extras-require
This is the term that PEP 621 uses and it is less likely to be
misspelled.

https://peps.python.org/pep-0621/#dependencies-optional-dependencies

I was never sure if it was `extra` or `extras`, or `require` or
`requires` and finally committed a mistake in #167405.
2022-05-22 16:31:45 +02:00
Drew Risinger
0d7b5a7e64 doc: remove python-language-server from manual
python3Packages.python-language-server is no longer maintained (broken), so it shouldn't be an example.
2022-05-05 15:07:47 -07:00
Frederik Rietdijk
1986bedcff python3Packages: document how to handle extras-require 2022-02-25 14:09:41 +01:00
Yevhen Shymotiuk
08d3a002db
doc/python: remove 3.6 from the list of cpython versions 2021-12-28 00:35:07 +02:00
github-actions[bot]
2add1758ab
Merge master into staging-next 2021-12-18 18:01:03 +00:00
Jonathan Ringer
0b97e89049 doc/python: update buildPythonApplication example
It's recommended to consume the interpreter, not the package
set when being called from `all-packages.nix`
2021-12-18 16:21:37 +01:00
github-actions[bot]
92aabc6576
Merge master into staging-next 2021-12-10 00:01:53 +00:00
Jonathan Ringer
3709e8aaf2
docs/python: Add CPython update schedule 2021-12-09 12:47:53 -08:00
Martin Weinelt
6dd0b1b8fc python311: init at 3.11.0a2 2021-11-30 14:19:52 +01:00
Martin Weinelt
938d796b7a
python310: 3.10.0-rc2 -> 3.10.0 2021-10-05 02:08:07 +02:00
Martin Weinelt
846e2b1919
python36: remove 2021-10-03 12:42:24 +02:00
D Anzorge
d6c2bb73fb doc/python: fix typo in example 2021-09-17 00:47:45 +02:00
Martin Weinelt
304ed7c421 doc/python: explain bulk package set updates 2021-08-25 12:33:10 -07:00
Robert Schütz
a2c9f04849 fixup! python3: 3.8 -> 3.9 2021-07-05 12:34:02 -07:00
Frederik Rietdijk
94cd70bae2 python3: 3.8 -> 3.9 2021-07-05 12:34:02 -07:00
Robert Schütz
1ec5651913 treewide: use pythonPackages.python-dateutil instead of pythonPackages.dateutil 2021-07-03 13:45:57 +02:00
Jan Tojnar
6ecc641d08
doc: prepare for commonmark
We are still using Pandoc’s Markdown parser, which differs from CommonMark spec slightly.

Notably:
- Line breaks in lists behave differently.
- Admonitions do not support the simpler syntax https://github.com/jgm/commonmark-hs/issues/75
- The auto_identifiers uses a different algorithm – I made the previous ones explicit.
- Languages (classes) of code blocks cannot contain whitespace so we have to use “pycon” alias instead of Python “console” as GitHub’s linguist

While at it, I also fixed the following issues:
- ShellSesssion was used
- Removed some pointless docbook tags.
2021-06-07 06:34:59 +02:00
Sandro Jäckel
89d5f4b3d0
treewide: setuptools_scm -> setuptools-scm 2021-06-03 12:44:33 +02:00
Jonas Chevalier
c6b62f2381
mkShell: introduce packages argument (#122180)
The distinction between the inputs doesn't really make sense in the
mkShell context.  Technically speaking, we should be using the
nativeBuildInputs most of the time.

So in order to make this function more beginner-friendly, add "packages"
as an attribute, that maps to nativeBuildInputs.

This commit also updates all the uses in nixpkgs.
2021-05-13 19:17:29 +02:00
Sandro
3a6116c550
Merge pull request #116257 from SuperSandro2000/code-fences
doc/languages-frameworks/*: add missing languages to code fences
2021-04-05 05:38:38 +02:00
Sandro Jäckel
2c143a4614 doc/languages-frameworks/*: add missing languages to code fences
convert shell -> ShellSession
2021-04-05 05:23:19 +02:00
github-actions[bot]
f7049b343c
Merge master into staging-next 2021-03-29 18:13:15 +00:00
Doron Behar
c2b66f2702
Merge pull request #98734 from ju1m/zerobin 2021-03-29 17:18:29 +00:00
github-actions[bot]
380cb1e995
Merge master into staging-next 2021-03-24 12:11:57 +00:00
Robert Schütz
7dfc2d269b
doc: improve Python section (#116344)
Avoid confusion as in https://github.com/NixOS/nixpkgs/pull/116325#discussion_r593946638.
2021-03-24 13:03:31 +01:00
github-actions[bot]
977005c64f
Merge staging-next into staging 2021-03-14 12:21:14 +00:00
Florian Engel
3329093c6a Remove repeating words from doc 2021-03-14 12:15:34 +01:00
Frederik Rietdijk
a6a9548a32 python docs: update another incorrect claim regarding default interpreter 2021-03-13 14:14:06 +01:00
Frederik Rietdijk
a9faf404c8 python docs: fix note regarding default interpreter 2021-03-13 14:11:31 +01:00
Frederik Rietdijk
9d03ff5222 python: reproducible builds
Achieve reproducible builds of the interpreter. Note this meant
disabling optimizations again.
2021-03-13 13:11:50 +01:00
Julien Moutinho
a9ce4c4a0e zerobin: 20160108 -> 1.0.5 2021-03-13 13:06:06 +01:00
Robert Schütz
11f4fa4a22 doc: mention up-to-date tools for generating Python expressions 2021-03-08 11:06:24 +01:00
Jonathan Ringer
6ed55034ee doc/python: reword sorting gaurentee to be stronger 2021-02-28 16:18:58 -08:00
Martin Weinelt
d6d63aef7d
pytestCheckHook: add support for disabling arbitrary paths
Renames `disabledTestFiles` to the more genereric `disabledTestPaths` to
reflect that change.
2021-02-15 00:34:35 +01:00
Sandro Jäckel
6f7f01a244 pytestCheckHook: Add disabledTestFiles option 2021-01-16 09:09:26 -08:00
Ryan Mulligan
b8344f9e5c doc: explicit Markdown anchors for top-level headings; remove metadata
I used the existing anchors generated by Docbook, so the anchor part
should be a no-op. This could be useful depending on the
infrastructure we choose to use, and it is better to be explicit than
rely on Docbook's id generating algorithms.

I got rid of the metadata segments of the Markdown files, because they
are outdated, inaccurate, and could make people less willing to change
them without speaking with the author.
2021-01-01 10:02:57 -08:00
applePrincess
698111962e
doc/python: Fix shebang link (#105196) 2020-11-28 04:06:50 +01:00
Frederik Rietdijk
748bc99520 docs: python39 is available 2020-10-13 18:53:40 +02:00
zowoq
069757550e doc/python: remove trailing whitespace 2020-09-21 09:35:27 +10:00
Jonathan Ringer
233dc9c7d1
doc/python: Add pythonImportsCheck mention 2020-08-17 13:41:39 -07:00
Jonathan Ringer
93e7292976
doc/python: add pytestCheckHook section 2020-08-17 13:41:39 -07:00
Jonathan Ringer
8c7d49b726
docs: update python interpreter versions 2020-08-12 21:57:40 -07:00
Daniël de Kok
58ec4d5c77 doc: pip install flags are specified with pipInstallFlags
The documentation incorrectly stated that `installFlags` are passed to
`pip install`.
2020-06-16 10:03:25 +02:00
Frederik Rietdijk
b7ff746540 python3: now points to python38
Note this also means python3Minimal is now also Python 3.8.

This reverts commit eb1369670b and adds more.
2020-06-04 18:08:29 +02:00
Jon
15b3d9d277
python3Packages.venvShellHook: add postVenvCreation (#87850)
* python3Packages.venvShellHook: add postVenvCreation

* python: docs: add postVenvCreation explaination
2020-05-16 09:34:11 +02:00
Benjamin Hipple
c88290789c doc: Rewrite python onboarding tutorials in manual
Based on some feedback in #87094 and discussion with @fridh, this re-organizes
the onboarding tutorial in the Nixpkgs manual's python section, so that we start
with the simplest, most ad-hoc examples and work our way up. This progresses
from:

1. How to create an temporary python env at the cmdline, then
2. How to create a specific python env for a single script, then
3. How to create a specific python env for a project in a shell.nix, then
4. How to install a specific python env globally on the system or in a user profile.

Additionally, I've tried to standardize on some of the "best practice" ways of
doing things:

1. Instead of saying that this command style is "supported but strongly not
   discouraged", I've just deleted it to avoid confusion.

   Bad:  nix-shell -p python38Packages.numpy python38Packages.toolz
   Good: nix-shell -p 'python38.withPackages(ps: with ps; [ numpy toolz ])'

2. In the portion where we show how to add stuff to the user's
   `XDG_CONFIG_HOME`, use overlays instead of `config.nix`. The former can do
   everything the latter can do, but is also much more generic and powerful,
   because it can compose with other files, compose with other envs, compose
   with overlays that do things like swap whether tensorflow and pytorch are
   built openblas/mkl/cuda stacks, and so on. The user is eventually going to
   see the overlay, so to avoid confusion let's standardize on it.
2020-05-15 22:43:16 +02:00
Benjamin Hipple
c3e2f98779 doc: use idiomatic overlay names in the python manual example
An overlay by any other name would function just as well, but we generally use
`self: super:` for the regular overlays, and `python-self: python-super`.
2020-05-09 18:02:20 -04:00
Benjamin Hipple
c0f434fcc8 doc: update python manual to reference python 3.8 instead of 3.5
Improvement suggested in #87094
2020-05-09 12:58:00 -04:00
Frederik Rietdijk
ca2fd28d83 Revert "docs/python: document builders using doInstallCheck and not doCheck (#86051)"
For disabling tests when overriding, use `.overridePythonAttrs`.

Discussion about aliasing `.overridePythonAttrs` to `.overrideAttrs`.
https://github.com/NixOS/nixpkgs/pull/82772

This reverts commit 35812875a4.
2020-04-26 16:22:33 +02:00
Doron Behar
35812875a4
docs/python: document builders using doInstallCheck and not doCheck (#86051) 2020-04-26 11:53:06 +00:00
Matthew Bauer
3c41d61514 doc/overlays.xml: update documentation for BLAS/LAPACK
This expands the documentation and explains how to assert LP64.
2020-04-21 11:03:10 -05:00
Pavol Rusnak
fadcfc3ea4
treewide: per RFC45, remove more unquoted URLs 2020-04-18 14:04:37 +02:00
Jonathan Ringer
3990b914c3 manual: use quoted homepage urls 2020-02-16 09:49:12 -08:00
Benjamin Hipple
4988805287 doc: consistent formatting on python manual section
No material changes to docs, but trying to sanitize them for consistent
readability prior to looking at #75837.

- Use `*` for lists instead of `-`. I have no opinion one way or the other, but
  the latter was only used in 1-2 places.
- Pad the code blocks with whitespace.
- Wrap to 80 characters, except for a few 1-liners that were only slightly over.
2020-02-09 11:23:11 -05:00
Dima
e9ba4b94fb doc: python: fixing mistake in venv example
When updating the section to python 3 some places still
referred to pythonPackages and were overlooked.
Decided to switch it to be more similar to the first
example binding pythonPackages and clarified comments a
bit based on confusion I observed on IRC.

Related to https://github.com/NixOS/nixpkgs/pull/77569
2020-02-02 09:39:58 -08:00
Dima
25d0d2b5e8 doc: python: refreshing virtualenv section for venv
Updating section about imperative use of ad-hoc virtual-environments for
use of pythons built-in `venv` module via venvShellHook.  Also trying to
make it a bit friendlier to beginners by adding a bit more explanation
to the code snippet and some remarks old-school virtualenv.

Adjusting for venvShellHook and adding manual example

Adding pip install and replacing python2 example with python3
2020-01-20 18:01:12 -08:00
Frederik Rietdijk
eba1f79418 pythonPackages.venvShellHook: init
This is a hook that loads a virtualenv from the specified `venvDir`
location. If the virtualenv does not exist, it is created.
2020-01-14 22:36:21 +01:00
Frederik Rietdijk
eb1369670b Revert "python3: now points to python38"
This is going to require more work.

This reverts commit 2dc4ab3677.
2020-01-10 10:33:40 +01:00
Vladimír Čunát
5c780036c5
Merge branch 'master' into staging-next
The nss rebuild isn't so small.
2020-01-08 22:48:13 +01:00
adisbladis
2d6f1ff4dd
python: Add support for installing Python eggs 2020-01-08 13:59:04 +00:00
Frederik Rietdijk
2dc4ab3677 python3: now points to python38 2020-01-04 15:27:48 +01:00
Frederik Rietdijk
07ceb05628 Docs: document we have python38 2020-01-04 15:27:03 +01:00
Daiderd Jordan
0159151705
manual: specify interpreter in virtualenv shell
Without this virtualenv might try to setup an environment for a
different version of python then the one specified in the expression.
2019-12-17 16:42:18 +01:00
Arnout Engelen
7eddc92374 documentation: show combining python35.withPackages and mkShell
this had me stumped - thanks to adisbladis on irc
2019-11-13 16:44:26 +01:00
Stig Otnes Kolstad
3265f554ca doc: fix tiny typo 2019-10-24 08:29:33 +02:00
Anders Riutta
1f7b1cf581 doc/python: clarify python nix tooling efforts
@garbas and @seppeljordan, are these updates correct?

I removed `offlinehacker/pypi2nix` as an unmaintained ancestor of the current repo `nix-community/pypi2nix`. It appears @garbas forked `offlinehacker/pypi2nix` to `garbas/pypi2nix` and then handed off maintainership to @seppeljordan, transferring the repo to `nix-community/pypi2nix`.
2019-10-14 09:54:01 +01:00
Frederik Rietdijk
f7e28bf5d8 Split buildPythonPackage into setup hooks
This commit splits the `buildPythonPackage` into multiple setup hooks.

Generally, Python packages are built from source to wheels using `setuptools`.
The wheels are then installed with `pip`. Tests were often called with
`python setup.py test` but this is less common nowadays. Most projects
now use a different entry point for running tests, typically `pytest`
or `nosetests`.

Since the wheel format was introduced more tools were built to generate these,
e.g. `flit`. Since PEP 517 is provisionally accepted, defining a build-system
independent format (`pyproject.toml`), `pip` can now use that format to
execute the correct build-system.

In the past I've added support for PEP 517 (`pyproject`) to the Python
builder, resulting in a now rather large builder. Furthermore, it was not possible
to reuse components elsewhere. Therefore, the builder is now split into multiple
setup hooks.

The `setuptoolsCheckHook` is included now by default but in time it should
be removed from `buildPythonPackage` to make it easier to use another hook
(curently one has to pass in `dontUseSetuptoolsCheck`).
2019-09-06 15:18:45 +02:00
Frederik Rietdijk
7da15d9b36 buildPythonPackage: add support for setupPyGlobalFlags (2) 2019-07-15 17:47:57 +02:00
Frederik Rietdijk
271b57c219 Revert "buildPythonPackage: add support for setupPyDistFlags"
I merged this a bit too quick. We need to have a closer look at it.
See the points brought up in https://github.com/NixOS/nixpkgs/pull/64682.

This reverts commit 1e0ebdb8a4.
2019-07-13 13:25:32 +02:00
Kirill Boltaev
1e0ebdb8a4 buildPythonPackage: add support for setupPyDistFlags
Flags passed to the "python setup.py" command.
2019-07-13 09:47:00 +02:00
Frederik Rietdijk
f1ff85e61d Docs Python: fix example on how to override the package set
Not passing in the newly created interpreter as `self` results in an
incorrect `passthru`. Solves #64334.
2019-07-05 13:56:03 +02:00
Tom McLaughlin
7f3d805e1c Add documentation for recent permitUserSite change (#61502) 2019-05-15 08:27:59 +02:00
Linus Heckemann
b3d9da5f0a doc: fix syntax error in python documentation 2019-04-25 22:37:53 +02:00
cdyson37
6ea4aa481d
python-docs: typo 2019-04-23 10:37:10 +01:00
Daniel Schaefer
bac4d95aa2 treewide: Change URLs to HTTPS
Lots of URLs were HTTP redirect to HTTPS. Changed those and checked them
if there's actual content. Inspired by
https://github.com/NixOS/nixpkgs/issues/60004
2019-04-22 10:19:54 +02:00
worldofpeace
0ccfebf9f2 fix Including a derivation using callPackage
The example didn't use pkgs.
2019-03-24 05:33:07 -04:00
worldofpeace
94a409450a fixup! doc/python: cleanup examples, references 2019-03-24 05:29:53 -04:00
worldofpeace
63f244193b doc/python: cleanup examples, references 2019-03-22 22:50:30 -04:00
Felix Biggs
1e86c0a7df doc/python: remove unnecessary let statement 2019-03-22 22:20:55 -04:00
Frederik Rietdijk
1fccd25595 buildPythonPackage: always export LANG=C.UTF-8 2019-02-23 20:08:26 +01:00
Frederik Rietdijk
e7b4608d02 buildPythonPackage: initial support for PEP 517 2019-02-23 20:05:19 +01:00
Frederik Rietdijk
b4acd97729 buildPython*: enable strictDeps 2019-02-17 14:40:48 +01:00
Benjamin Hipple
6206a342e0 mkl: include Intel's libiomp.so in the MKL RPM unpack
Since Intel's default openmp implementation is available in the same src
tarball, we can just include it in the package. This means that `mkl` now "just
works" without any environment variables, fragile setup-hooks, or forced
propagation.

Since the openmp implementation is only needed at runtime (and for test cases),
users can substitute a different one if they prefer by exporting it with
`LD_PRELOAD`, which is how Intel recommends handling this. If they do not do so,
`libiomp.so` lives next to `libmkl_rt.so` and thus will be in the RPATH as a
sane default.

Since this still comes from the same src tarball, we can ship it without losing
the fixed-output derivation; likewise, since Hydra is not building or caching
these, shipping these proprietary packages costs no bandwidth for the nix
community.
2018-12-19 22:05:22 +01:00