Skip to content

Commit

Permalink
Make wheel the default format and update docs [ci skip]
Browse files Browse the repository at this point in the history
  • Loading branch information
ines committed Feb 1, 2021
1 parent b9573e9 commit a59f3fc
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 29 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,9 @@ command, or manually by pointing pip to a path or URL.
# Download best-matching version of specific model for your spaCy installation
python -m spacy download en_core_web_sm

# pip install .tar.gz archive from path or URL
# pip install .tar.gz archive or .whl from path or URL
pip install /Users/you/en_core_web_sm-3.0.0.tar.gz
pip install /Users/you/en_core_web_sm-3.0.0-py3-none-any.whl
pip install https:/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0.tar.gz
```

Expand Down
8 changes: 4 additions & 4 deletions spacy/cli/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def download_cli(
ctx: typer.Context,
model: str = Arg(..., help="Name of pipeline package to download"),
direct: bool = Opt(False, "--direct", "-d", "-D", help="Force direct download of name + version"),
wheel: bool = Opt(False, "--wheel", "-W", help="Download binary wheel")
sdist: bool = Opt(False, "--sdist", "-S", help="Download sdist (.tar.gz) archive instead of pre-built binary wheel")
# fmt: on
):
"""
Expand All @@ -32,10 +32,10 @@ def download_cli(
DOCS: https://spacy.io/api/cli#download
AVAILABLE PACKAGES: https://spacy.io/models
"""
download(model, direct, wheel, *ctx.args)
download(model, direct, sdist, *ctx.args)


def download(model: str, direct: bool = False, wheel: bool = False, *pip_args) -> None:
def download(model: str, direct: bool = False, sdist: bool = False, *pip_args) -> None:
if (
not (is_package("spacy") or is_package("spacy-nightly"))
and "--no-deps" not in pip_args
Expand All @@ -49,7 +49,7 @@ def download(model: str, direct: bool = False, wheel: bool = False, *pip_args) -
"dependencies, you'll have to install them manually."
)
pip_args = pip_args + ("--no-deps",)
suffix = WHEEL_SUFFIX if wheel else SDIST_SUFFIX
suffix = SDIST_SUFFIX if sdist else WHEEL_SUFFIX
dl_tpl = "{m}-{v}/{m}-{v}{s}#egg={m}=={v}"
if direct:
components = model.split("-")
Expand Down
6 changes: 2 additions & 4 deletions website/docs/api/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@ Download [trained pipelines](/usage/models) for spaCy. The downloader finds the
best-matching compatible version and uses `pip install` to download the Python
package. Direct downloads don't perform any compatibility checks and require the
pipeline name to be specified with its version (e.g. `en_core_web_sm-3.0.0`).
Setting the `--wheel` flag will download a binary wheel file instead of an
archive, which can be faster and more memory efficient.

> #### Downloading best practices
>
Expand All @@ -44,14 +42,14 @@ archive, which can be faster and more memory efficient.
> project.
```cli
$ python -m spacy download [model] [--wheel] [--direct] [pip_args]
$ python -m spacy download [model] [--direct] [--sdist] [pip_args]
```

| Name | Description |
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `model` | Pipeline package name, e.g. [`en_core_web_sm`](/models/en#en_core_web_sm). ~~str (positional)~~ |
| `--wheel`, `-W` <Tag variant="new">3</Tag> | Download binary wheel package instead of `.tar.gz` archive. Can make download and installation faster and more memory efficient. ~~bool (flag)~~ |
| `--direct`, `-D` | Force direct download of exact package version. ~~bool (flag)~~ |
| `--sdist`, `-S` <Tag variant="new">3</Tag> | Download the source package (`.tar.gz` archive) instead of the default pre-built binary wheel. ~~bool (flag)~~ |
| `--help`, `-h` | Show help message and available arguments. ~~bool (flag)~~ |
| pip args <Tag variant="new">2.1</Tag> | Additional installation options to be passed to `pip install` when installing the pipeline package. For example, `--user` to install to the user home directory or `--no-deps` to not install package dependencies. ~~Any (option/flag)~~ |
| **CREATES** | The installed pipeline package in your `site-packages` directory. |
Expand Down
8 changes: 4 additions & 4 deletions website/docs/usage/models.md
Original file line number Diff line number Diff line change
Expand Up @@ -283,9 +283,6 @@ $ python -m spacy download en_core_web_sm
# Download exact package version
$ python -m spacy download en_core_web_sm-3.0.0 --direct
# Download binary wheel (can be more efficient)
$ python -m spacy download en_core_web_sm --wheel
```
The download command will [install the package](/usage/models#download-pip) via
Expand All @@ -306,15 +303,18 @@ doc = nlp("This is a sentence.")
To download a trained pipeline directly using
[pip](https://pypi.python.org/pypi/pip), point `pip install` to the URL or local
path of the archive file. To find the direct link to a package, head over to the
path of the wheel file or archive. Installing the wheel is usually more
efficient. To find the direct link to a package, head over to the
[releases](https://github.com/explosion/spacy-models/releases), right click on
the archive link and copy it to your clipboard.
```bash
# With external URL
$ pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0-py3-none-any.whl
$ pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0.tar.gz
# With local file
$ pip install /Users/you/en_core_web_sm-3.0.0-py3-none-any.whl
$ pip install /Users/you/en_core_web_sm-3.0.0.tar.gz
```
Expand Down
5 changes: 3 additions & 2 deletions website/docs/usage/saving-loading.md
Original file line number Diff line number Diff line change
Expand Up @@ -658,8 +658,9 @@ $ python -m spacy package ./en_example_pipeline ./packages
```
This command will create a pipeline package directory and will run
`python setup.py sdist` in that directory to create `.tar.gz` archive of your
package that can be installed using `pip install`.
`python setup.py sdist` in that directory to create a binary `.whl` file or
`.tar.gz` archive of your package that can be installed using `pip install`.
Installing the binary wheel is usually more efficient.
```yaml
### Directory structure
Expand Down
16 changes: 2 additions & 14 deletions website/src/widgets/quickstart-models.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,25 +51,16 @@ const data = [
id: 'config',
title: 'Options',
multiple: true,
options: [
{
id: 'wheel',
title: 'Download binary wheel',
help: 'Can make download and installation more efficient',
},
{ id: 'example', title: 'Show text example' },
],
options: [{ id: 'example', title: 'Show text example' }],
},
]

const QuickstartInstall = ({ id, title, description, children }) => {
const [lang, setLang] = useState(DEFAULT_LANG)
const [wheel, setWheel] = useState(false)
const [efficiency, setEfficiency] = useState(DEFAULT_OPT === 'efficiency')
const setters = {
lang: setLang,
optimize: v => setEfficiency(v.includes('efficiency')),
config: v => setWheel(v.includes('wheel')),
}
return (
<StaticQuery
Expand All @@ -96,10 +87,7 @@ const QuickstartInstall = ({ id, title, description, children }) => {
const exampleText = example || 'No text available yet'
return lang !== code ? null : (
<Fragment key={code}>
<QS>
python -m spacy download {pkg}
{wheel ? ' --wheel' : ''}
</QS>
<QS>python -m spacy download {pkg}</QS>
<QS divider />
<QS load="spacy" prompt="python">
import spacy
Expand Down

0 comments on commit a59f3fc

Please sign in to comment.