Commit Graph

193 Commits

Author SHA1 Message Date
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
Anders Kaseorg
85379a29ec pypy3: init at 6.0.0
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2018-12-19 09:53:31 +01:00
Frederik Rietdijk
7863aae5b2 Merge master into staging-next 2018-11-11 08:59:44 +01:00
Benjamin Hipple
a649f1c0cd doc: fix default python interpreter
The default for `python3` is currently `python36`.
2018-11-10 13:00:10 -05:00
Frederik Rietdijk
53d00c3351 Merge master into staging-next 2018-11-10 11:08:54 +01:00
Frederik Rietdijk
b1bdce0793 python34: remove
Python 3.4 will receive it's final patch release in March 2019 and there won't
be any releases anymore after that, so also not during NixOS 2019.03.

Python 3.4 is not used anymore in Nixpkgs. In any case, migrating code from
3.4 to 3.4+ is trivial.
2018-11-04 18:48:24 +01:00
Vladimír Čunát
a92a2c8e15
Merge branch 'master' into staging
Conflict: rename of pythondaemon -> python-daemon.
2018-11-02 14:40:14 +01:00
Benjamin Hipple
baf0703010 pythonPackages.pythondaemon: rename to pythonPackages.python-daemon
This commit renames the pythondaemon module to match its module name, github
name, and pypi name, which makes it easier to find and reference. In order to
avoid breaking any external users, I've left an alias with a deprecated warning.
2018-10-30 21:09:34 +01:00
Frederik Rietdijk
0f38d9669f python3 is now python37 instead of python36
With Python 3.7 now at 3.7.1, and Python 3.6 at it's final maintenance
mode release, it is time to move on to 3.7 as the default interpreter.
2018-10-24 20:05:44 +02:00
Chris Ostrouchov
277b73ab6f pythonPackages.{numpy,scipy,numexpr}: support MKL as BLAS
This adds support building with MKL.
2018-10-20 11:50:37 +02:00
Benjamin Hipple
1bcdf27c48 Update with code review feedback; add example python application 2018-10-12 10:06:25 +02:00
Benjamin Hipple
c0af13f1c8 python: update documentation
This touches up a handful of places in the python documentation to try to make
the current best-practices more obvious. In particular, I often find the
function signatures (what to pass, what not to pass) confusing and have added
them to the docs.

Also updated the metas to be more consistent with the most frequently used
modern style.
2018-10-12 10:06:25 +02:00
Jörg Thalheim
86bd041196 docs/python: fix attribute naming example
https://github.com/NixOS/nixpkgs/pull/45822#issuecomment-417566642
2018-08-31 08:02:55 +01:00
Jörg Thalheim
e5124b0f75 doc/python: convention for attributes names
cc @FRidh, @dotlambda
2018-08-31 06:52:53 +01:00
Frederik Rietdijk
b7e0c40d29 docs python: python.buildEnv does not include buildPythonApplication modules
Clarify the issue encountered at
https://github.com/NixOS/nixpkgs/issues/45503
2018-08-26 09:31:39 +02:00
Erik Arvstedt
eb60a87887 python-docs: minor typo and grammar fixes 2018-07-26 14:28:23 +02:00
Erik Arvstedt
fa01100f40 python-docs: fix override examples
Use example package `zerobin` instead of `bepasty-server` which
is no longer part of python-packages.
This fixes the examples for current nixpkgs versions.
2018-07-25 21:33:48 +02:00
Erik Arvstedt
42e3727aa2 python docs: improve override example
1. Use the same approach like in the overlay example:
   Override `python` instead of `pythonPackages` so that
   `python.pkgs` refers to the new package set like `pythonPackages`.

   This also fixes a bug in the original example where
   `pkgs.fetchgit` was not in scope.

   Add an extra example to illustrate how to override just a
   package set.

2. Fix mix-up between `super` and `self` in the explanation text.
   Also, simplify the explanation.
2018-07-25 21:29:25 +02:00
Erik Arvstedt
a8f54972f4 python docs: improve overlay example
The `pythonPackages` definition is redundant
2018-07-25 16:44:56 +02:00
Alyssa Ross
79ab3370ed manual: fix buildPythonPackage example (#42866) 2018-07-03 17:19:18 +02:00
Matthew Pickering
11551f06e2
Update Python documentation overlay
Using a recursive attribute set is not recommended.
2018-06-30 16:35:49 +01:00
Ryan Mulligan
1d54dc6841 treewide: http -> https 2018-06-29 17:18:27 -07:00
Ryan Mulligan
fce8f26af6 treewide: http -> https (#42665) 2018-06-27 22:12:57 +02:00
Frederik Rietdijk
7c9d95fef5 python37: init at 3.7.0rc1 2018-06-25 10:41:32 +02:00
Rolf Schröder
979ac47cd8 doc/languages-frameworks/python.section.md: fix typo (#41824) 2018-06-11 10:24:07 +01:00
Frederik Rietdijk
39e9de1b85 Docs: improve Python section
Explain `toPythonApplication` and `toPythonModule` as well as some minor improvements.
2018-05-30 19:08:06 +02:00
Will Dietz
4f273627a1 tree-wide: fix instance of "meta.maintainer" -> "meta.maintainers"
Encountered one of these when using check-meta, did a quick
search to find other instances.
2018-04-19 10:41:12 -05:00
Graham Christensen
92d53362d4
Move all nixpkgs doc files in to the doc directory
This makes a makefile-driven developer workflow nicer.
2018-03-25 19:52:00 -04:00