mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 01:48:04 +03:00 
			
		
		
		
	* Docs for v3.7.0 * Minor fixes * Extend Weasel notes * Minor edits * Update version in README
		
			
				
	
	
		
			141 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
---
 | 
						|
title: What's New in v3.7
 | 
						|
teaser: New features and how to upgrade
 | 
						|
menu:
 | 
						|
  - ['New Features', 'features']
 | 
						|
  - ['Upgrading Notes', 'upgrading']
 | 
						|
---
 | 
						|
 | 
						|
## New features {id="features",hidden="true"}
 | 
						|
 | 
						|
spaCy v3.7 adds support for Python 3.12, introduces the new standalone library
 | 
						|
[Weasel](https://github.com/explosion/weasel) for project workflows, and updates
 | 
						|
the transformer-based trained pipelines to use our new
 | 
						|
[Curated Transformers](https://github.com/explosion/curated-transformers)
 | 
						|
library.
 | 
						|
 | 
						|
This release drops support for Python 3.6.
 | 
						|
 | 
						|
### Weasel {id="weasel"}
 | 
						|
 | 
						|
The [spaCy projects](/usage/projects) functionality has been moved into a new
 | 
						|
standalone library [Weasel](https://github.com/explosion/weasel). This brings
 | 
						|
minor changes to spaCy-specific settings in spaCy projects (see
 | 
						|
[upgrading](#upgrading) below), but also makes it possible to use the same
 | 
						|
workflow functionality outside of spaCy.
 | 
						|
 | 
						|
All `spacy project` commands should run as before, just now they're using Weasel
 | 
						|
under the hood.
 | 
						|
 | 
						|
<Infobox title="Remote storage for Python 3.12" variant="warning">
 | 
						|
 | 
						|
Remote storage for spaCy projects is not yet supported for Python 3.12. Use
 | 
						|
Python 3.11 or earlier for remote storage.
 | 
						|
 | 
						|
</Infobox>
 | 
						|
 | 
						|
### Registered vectors {id="custom-vectors"}
 | 
						|
 | 
						|
You can specify a custom registered vectors class under `[nlp.vectors]` in order
 | 
						|
to use static vectors in formats other than the ones supported by
 | 
						|
[`Vectors`](/api/vectors). To implement your custom vectors, extend the abstract
 | 
						|
class [`BaseVectors`](/api/basevectors). See an example using
 | 
						|
[BPEmb subword embeddings](/usage/embeddings-transformers#custom-vectors).
 | 
						|
 | 
						|
### Additional features and improvements {id="additional-features-and-improvements"}
 | 
						|
 | 
						|
- Add support for Python 3.12.
 | 
						|
- Extend to Thinc v8.2.
 | 
						|
- Extend `transformers` extra to `spacy-transformers` v1.3.
 | 
						|
- Add `--spans-key` option for CLI evaluation with `spacy benchmark accuracy`.
 | 
						|
- Load the CLI module lazily for `spacy.info`.
 | 
						|
- Add type stubs for for `spacy.training.example`.
 | 
						|
- Warn for unsupported pattern keys in dependency matcher.
 | 
						|
- `Language.replace_listeners`: Pass the replaced listener and the `tok2vec`
 | 
						|
  pipe to the callback in order to support `spacy-curated-transformers`.
 | 
						|
- Always use `tqdm` with `disable=None` in order to disable output in
 | 
						|
  non-interactive environments.
 | 
						|
- Language updates:
 | 
						|
  - Add left and right pointing angle brackets as punctuation to ancient Greek.
 | 
						|
  - Update example sentences for Turkish.
 | 
						|
- Package setup updates:
 | 
						|
  - Update NumPy build constraints for NumPy 1.25+. For Python 3.9+, it is no
 | 
						|
    longer necessary to set build constraints while building binary wheels.
 | 
						|
  - Refactor Cython profiling in order to disable profiling for Python 3.12 in
 | 
						|
    the package setup, since Cython does not currently support profiling for
 | 
						|
    Python 3.12.
 | 
						|
 | 
						|
## Trained pipelines {id="pipelines"}
 | 
						|
 | 
						|
### Pipeline updates {id="pipeline-updates"}
 | 
						|
 | 
						|
The transformer-based `trf` pipelines have been updated to use our new
 | 
						|
[Curated Transformers](https://github.com/explosion/curated-transformers)
 | 
						|
library using the Thinc model wrappers and pipeline component from
 | 
						|
[spaCy Curated Transformers](https://github.com/explosion/spacy-curated-transformers).
 | 
						|
 | 
						|
## Notes about upgrading from v3.6 {id="upgrading"}
 | 
						|
 | 
						|
This release drops support for Python 3.6, drops mypy checks for Python 3.7 and
 | 
						|
removes the `ray` extra. In addition there are several minor changes for spaCy
 | 
						|
projects described in the following section.
 | 
						|
 | 
						|
### Backwards incompatibilities for spaCy Projects {id="upgrading-projects"}
 | 
						|
 | 
						|
`spacy project` has a few backwards incompatibilities due to the transition to
 | 
						|
the standalone library [Weasel](https://github.com/explosion/weasel), which is
 | 
						|
not as tightly coupled to spaCy. Weasel produces warnings when it detects older
 | 
						|
spaCy-specific settings in your environment or project config.
 | 
						|
 | 
						|
- Support for the `spacy_version` configuration key has been dropped.
 | 
						|
- Support for the `check_requirements` configuration key has been dropped due to
 | 
						|
  the deprecation of `pkg_resources`.
 | 
						|
- The `SPACY_CONFIG_OVERRIDES` environment variable is no longer checked. You
 | 
						|
  can set configuration overrides using `WEASEL_CONFIG_OVERRIDES`.
 | 
						|
- Support for `SPACY_PROJECT_USE_GIT_VERSION` environment variable has been
 | 
						|
  dropped.
 | 
						|
- Error codes are now Weasel-specific and do not follow spaCy error codes.
 | 
						|
 | 
						|
### Pipeline package version compatibility {id="version-compat"}
 | 
						|
 | 
						|
> #### Using legacy implementations
 | 
						|
>
 | 
						|
> In spaCy v3, you'll still be able to load and reference legacy implementations
 | 
						|
> via [`spacy-legacy`](https://github.com/explosion/spacy-legacy), even if the
 | 
						|
> components or architectures change and newer versions are available in the
 | 
						|
> core library.
 | 
						|
 | 
						|
When you're loading a pipeline package trained with an earlier version of spaCy
 | 
						|
v3, you will see a warning telling you that the pipeline may be incompatible.
 | 
						|
This doesn't necessarily have to be true, but we recommend running your
 | 
						|
pipelines against your test suite or evaluation data to make sure there are no
 | 
						|
unexpected results.
 | 
						|
 | 
						|
If you're using one of the [trained pipelines](/models) we provide, you should
 | 
						|
run [`spacy download`](/api/cli#download) to update to the latest version. To
 | 
						|
see an overview of all installed packages and their compatibility, you can run
 | 
						|
[`spacy validate`](/api/cli#validate).
 | 
						|
 | 
						|
If you've trained your own custom pipeline and you've confirmed that it's still
 | 
						|
working as expected, you can update the spaCy version requirements in the
 | 
						|
[`meta.json`](/api/data-formats#meta):
 | 
						|
 | 
						|
```diff
 | 
						|
- "spacy_version": ">=3.6.0,<3.7.0",
 | 
						|
+ "spacy_version": ">=3.6.0,<3.8.0",
 | 
						|
```
 | 
						|
 | 
						|
### Updating v3.6 configs
 | 
						|
 | 
						|
To update a config from spaCy v3.6 with the new v3.7 settings, run
 | 
						|
[`init fill-config`](/api/cli#init-fill-config):
 | 
						|
 | 
						|
```cli
 | 
						|
$ python -m spacy init fill-config config-v3.6.cfg config-v3.7.cfg
 | 
						|
```
 | 
						|
 | 
						|
In many cases ([`spacy train`](/api/cli#train),
 | 
						|
[`spacy.load`](/api/top-level#spacy.load)), the new defaults will be filled in
 | 
						|
automatically, but you'll need to fill in the new settings to run
 | 
						|
[`debug config`](/api/cli#debug) and [`debug data`](/api/cli#debug-data).
 |