fastcore 2.0.3__tar.gz → 2.0.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fastcore-2.0.5/PKG-INFO +66 -0
- fastcore-2.0.5/README.md +35 -0
- fastcore-2.0.5/fastcore/__init__.py +1 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/_modidx.py +1 -2
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/nbio.py +13 -20
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/xtras.py +7 -3
- fastcore-2.0.5/fastcore.egg-info/PKG-INFO +66 -0
- fastcore-2.0.3/PKG-INFO +0 -121
- fastcore-2.0.3/README.md +0 -90
- fastcore-2.0.3/fastcore/__init__.py +0 -1
- fastcore-2.0.3/fastcore.egg-info/PKG-INFO +0 -121
- {fastcore-2.0.3 → fastcore-2.0.5}/CONTRIBUTING.md +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/LICENSE +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/MANIFEST.in +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/aio.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/all.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/ansi.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/basics.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/dispatch.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/docments.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/docscrape.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/foundation.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/imghdr.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/imports.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/meta.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/nb_imports.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/net.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/parallel.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/py2pyi.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/script.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/shutil.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/style.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/test.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/tools.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/transform.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/utils.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/xdg.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/xml.py +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore.egg-info/SOURCES.txt +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore.egg-info/dependency_links.txt +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore.egg-info/entry_points.txt +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore.egg-info/requires.txt +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/fastcore.egg-info/top_level.txt +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/pyproject.toml +0 -0
- {fastcore-2.0.3 → fastcore-2.0.5}/setup.cfg +0 -0
fastcore-2.0.5/PKG-INFO
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: fastcore
|
|
3
|
+
Version: 2.0.5
|
|
4
|
+
Summary: Python supercharged for fastai development
|
|
5
|
+
Author-email: Jeremy Howard and Sylvain Gugger <infos@fast.ai>
|
|
6
|
+
License: Apache-2.0
|
|
7
|
+
Project-URL: Repository, https://github.com/AnswerDotAI/fastcore/
|
|
8
|
+
Project-URL: Documentation, https://fastcore.fast.ai/
|
|
9
|
+
Keywords: python
|
|
10
|
+
Classifier: Natural Language :: English
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
+
Requires-Python: >=3.11
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Provides-Extra: dev
|
|
19
|
+
Requires-Dist: numpy; extra == "dev"
|
|
20
|
+
Requires-Dist: nbdev>=0.2.39; extra == "dev"
|
|
21
|
+
Requires-Dist: matplotlib; extra == "dev"
|
|
22
|
+
Requires-Dist: pillow; extra == "dev"
|
|
23
|
+
Requires-Dist: torch; extra == "dev"
|
|
24
|
+
Requires-Dist: pandas; extra == "dev"
|
|
25
|
+
Requires-Dist: nbclassic; extra == "dev"
|
|
26
|
+
Requires-Dist: pysym2md>=0.0.6; extra == "dev"
|
|
27
|
+
Requires-Dist: llms-txt; extra == "dev"
|
|
28
|
+
Requires-Dist: plum-dispatch; extra == "dev"
|
|
29
|
+
Requires-Dist: toolslm; extra == "dev"
|
|
30
|
+
Dynamic: license-file
|
|
31
|
+
|
|
32
|
+
# Welcome to fastcore
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
|
|
36
|
+
|
|
37
|
+
> [!NOTE]
|
|
38
|
+
>
|
|
39
|
+
> ### fastcore v2
|
|
40
|
+
>
|
|
41
|
+
> In July 2026 we released fastcore v2, which removes or relocates a number of APIs that had accumulated better alternatives. If you use `from fastcore.utils import *` (or `fastcore.all`), most of these changes won’t affect you. The breaking changes: `Param` is gone from `fastcore.script`; use plain type annotations with docments, or `typing.Annotated[type, "help"]`, optionally with a `dict` of argparse arguments for advanced features. [`L`](https://fastcore.fast.ai/foundation.html#l)’s `starmap`, `starfilter`, and the other `star*`/`rstar*` methods are replaced by the [`star`](https://fastcore.fast.ai/foundation.html#star) and [`rstar`](https://fastcore.fast.ai/foundation.html#rstar) function adapters, which compose with every [`L`](https://fastcore.fast.ai/foundation.html#l) method (e.g. `t.map(star(f))`); relatedly, `spread` is replaced by [`star`](https://fastcore.fast.ai/foundation.html#star), and `dspread` is renamed to [`dstar`](https://fastcore.fast.ai/basics.html#dstar). Async helpers now live in the new `fastcore.aio` module: [`run_sync`](https://fastcore.fast.ai/aio.html#run_sync), [`iter_sync`](https://fastcore.fast.ai/aio.html#iter_sync), and [`ctx_sync`](https://fastcore.fast.ai/aio.html#ctx_sync) moved there from `net`, and [`maybe_await`](https://fastcore.fast.ai/aio.html#maybe_await), [`then`](https://fastcore.fast.ai/aio.html#then), [`mapa`](https://fastcore.fast.ai/aio.html#mapa), [`acache`](https://fastcore.fast.ai/aio.html#acache), [`reawaitable`](https://fastcore.fast.ai/aio.html#reawaitable), [`is_async_callable`](https://fastcore.fast.ai/aio.html#is_async_callable), and the other async utilities moved there from `xtras`. [`Config`](https://fastcore.fast.ai/xtras.html#config) and the config file functions moved from `foundation` to `xtras`. `fastcore.net` lost its request builders (`urlrequest`, `urlsend`, `do_request`, `urlcheck`) and `clean_type_str` is gone. `parallel_gen` is removed; the stdlib [`ProcessPoolExecutor`](https://fastcore.fast.ai/parallel.html#processpoolexecutor) `initializer` pattern replaces it (fastai’s `parallel_tokenize` shows the recipe). Python 3.11 or later is now required. If you need the old APIs, pin `fastcore<2`.
|
|
42
|
+
|
|
43
|
+
Python is a powerful, dynamic language. Rather than bake everything into the language, it lets the programmer customize it to make it work for them. `fastcore` uses this flexibility to add to Python features inspired by other languages we’ve loved, mixins from Ruby, and currying, binding, and more from Haskell. It also adds some “missing features” and clean up some rough edges in the Python standard library, such as simplifying parallel processing, and bringing ideas from NumPy over to Python’s `list` type.
|
|
44
|
+
|
|
45
|
+
## Getting started
|
|
46
|
+
|
|
47
|
+
To install fastcore run: `conda install fastcore -c fastai` (if you use Anaconda, which we recommend) or `pip install fastcore`. For an [editable install](https://stackoverflow.com/questions/35064426/when-would-the-e-editable-option-be-useful-with-pip-install), clone this repo and run: `pip install -e ".[dev]"`. fastcore is tested to work on Ubuntu, macOS and Windows (versions tested are those shown with the `-latest` suffix [here](https://docs.github.com/en/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources)).
|
|
48
|
+
|
|
49
|
+
`fastcore` contains many features, including:
|
|
50
|
+
|
|
51
|
+
- `fastcore.test`: Simple testing functions
|
|
52
|
+
- `fastcore.foundation`: Mixins, delegation, composition, and more
|
|
53
|
+
- `fastcore.xtras`: Utility functions to help with functional-style programming, parallel processing, and more
|
|
54
|
+
|
|
55
|
+
To get started, we recommend you read through [the fastcore tour](https://fastcore.fast.ai/tour.html).
|
|
56
|
+
|
|
57
|
+
## Contributing
|
|
58
|
+
|
|
59
|
+
After you clone this repository, please run `nbdev_install_hooks` in your terminal. This sets up git hooks, which clean up the notebooks to remove the extraneous stuff stored in the notebooks (e.g. which cells you ran) which causes unnecessary merge conflicts.
|
|
60
|
+
|
|
61
|
+
To run the tests in parallel, launch `nbdev_test`.
|
|
62
|
+
|
|
63
|
+
Before submitting a PR, check that the local library and notebooks match.
|
|
64
|
+
|
|
65
|
+
- If you made a change to the notebooks in one of the exported cells, you can export it to the library with `nbdev_prepare`.
|
|
66
|
+
- If you made a change to the library, you can export it back to the notebooks with `nbdev_update`.
|
fastcore-2.0.5/README.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Welcome to fastcore
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
|
|
5
|
+
|
|
6
|
+
> [!NOTE]
|
|
7
|
+
>
|
|
8
|
+
> ### fastcore v2
|
|
9
|
+
>
|
|
10
|
+
> In July 2026 we released fastcore v2, which removes or relocates a number of APIs that had accumulated better alternatives. If you use `from fastcore.utils import *` (or `fastcore.all`), most of these changes won’t affect you. The breaking changes: `Param` is gone from `fastcore.script`; use plain type annotations with docments, or `typing.Annotated[type, "help"]`, optionally with a `dict` of argparse arguments for advanced features. [`L`](https://fastcore.fast.ai/foundation.html#l)’s `starmap`, `starfilter`, and the other `star*`/`rstar*` methods are replaced by the [`star`](https://fastcore.fast.ai/foundation.html#star) and [`rstar`](https://fastcore.fast.ai/foundation.html#rstar) function adapters, which compose with every [`L`](https://fastcore.fast.ai/foundation.html#l) method (e.g. `t.map(star(f))`); relatedly, `spread` is replaced by [`star`](https://fastcore.fast.ai/foundation.html#star), and `dspread` is renamed to [`dstar`](https://fastcore.fast.ai/basics.html#dstar). Async helpers now live in the new `fastcore.aio` module: [`run_sync`](https://fastcore.fast.ai/aio.html#run_sync), [`iter_sync`](https://fastcore.fast.ai/aio.html#iter_sync), and [`ctx_sync`](https://fastcore.fast.ai/aio.html#ctx_sync) moved there from `net`, and [`maybe_await`](https://fastcore.fast.ai/aio.html#maybe_await), [`then`](https://fastcore.fast.ai/aio.html#then), [`mapa`](https://fastcore.fast.ai/aio.html#mapa), [`acache`](https://fastcore.fast.ai/aio.html#acache), [`reawaitable`](https://fastcore.fast.ai/aio.html#reawaitable), [`is_async_callable`](https://fastcore.fast.ai/aio.html#is_async_callable), and the other async utilities moved there from `xtras`. [`Config`](https://fastcore.fast.ai/xtras.html#config) and the config file functions moved from `foundation` to `xtras`. `fastcore.net` lost its request builders (`urlrequest`, `urlsend`, `do_request`, `urlcheck`) and `clean_type_str` is gone. `parallel_gen` is removed; the stdlib [`ProcessPoolExecutor`](https://fastcore.fast.ai/parallel.html#processpoolexecutor) `initializer` pattern replaces it (fastai’s `parallel_tokenize` shows the recipe). Python 3.11 or later is now required. If you need the old APIs, pin `fastcore<2`.
|
|
11
|
+
|
|
12
|
+
Python is a powerful, dynamic language. Rather than bake everything into the language, it lets the programmer customize it to make it work for them. `fastcore` uses this flexibility to add to Python features inspired by other languages we’ve loved, mixins from Ruby, and currying, binding, and more from Haskell. It also adds some “missing features” and clean up some rough edges in the Python standard library, such as simplifying parallel processing, and bringing ideas from NumPy over to Python’s `list` type.
|
|
13
|
+
|
|
14
|
+
## Getting started
|
|
15
|
+
|
|
16
|
+
To install fastcore run: `conda install fastcore -c fastai` (if you use Anaconda, which we recommend) or `pip install fastcore`. For an [editable install](https://stackoverflow.com/questions/35064426/when-would-the-e-editable-option-be-useful-with-pip-install), clone this repo and run: `pip install -e ".[dev]"`. fastcore is tested to work on Ubuntu, macOS and Windows (versions tested are those shown with the `-latest` suffix [here](https://docs.github.com/en/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources)).
|
|
17
|
+
|
|
18
|
+
`fastcore` contains many features, including:
|
|
19
|
+
|
|
20
|
+
- `fastcore.test`: Simple testing functions
|
|
21
|
+
- `fastcore.foundation`: Mixins, delegation, composition, and more
|
|
22
|
+
- `fastcore.xtras`: Utility functions to help with functional-style programming, parallel processing, and more
|
|
23
|
+
|
|
24
|
+
To get started, we recommend you read through [the fastcore tour](https://fastcore.fast.ai/tour.html).
|
|
25
|
+
|
|
26
|
+
## Contributing
|
|
27
|
+
|
|
28
|
+
After you clone this repository, please run `nbdev_install_hooks` in your terminal. This sets up git hooks, which clean up the notebooks to remove the extraneous stuff stored in the notebooks (e.g. which cells you ran) which causes unnecessary merge conflicts.
|
|
29
|
+
|
|
30
|
+
To run the tests in parallel, launch `nbdev_test`.
|
|
31
|
+
|
|
32
|
+
Before submitting a PR, check that the local library and notebooks match.
|
|
33
|
+
|
|
34
|
+
- If you made a change to the notebooks in one of the exported cells, you can export it to the library with `nbdev_prepare`.
|
|
35
|
+
- If you made a change to the library, you can export it back to the notebooks with `nbdev_update`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.0.5"
|
|
@@ -505,14 +505,12 @@ d = { 'settings': { 'branch': 'main',
|
|
|
505
505
|
'fastcore.nbio._is_json_mime': ('nbio.html#_is_json_mime', 'fastcore/nbio.py'),
|
|
506
506
|
'fastcore.nbio._join': ('nbio.html#_join', 'fastcore/nbio.py'),
|
|
507
507
|
'fastcore.nbio._mkout': ('nbio.html#_mkout', 'fastcore/nbio.py'),
|
|
508
|
-
'fastcore.nbio._preferred_msg_out': ('nbio.html#_preferred_msg_out', 'fastcore/nbio.py'),
|
|
509
508
|
'fastcore.nbio._read_json': ('nbio.html#_read_json', 'fastcore/nbio.py'),
|
|
510
509
|
'fastcore.nbio._rejoin_cell': ('nbio.html#_rejoin_cell', 'fastcore/nbio.py'),
|
|
511
510
|
'fastcore.nbio._rejoin_mime': ('nbio.html#_rejoin_mime', 'fastcore/nbio.py'),
|
|
512
511
|
'fastcore.nbio._render_text': ('nbio.html#_render_text', 'fastcore/nbio.py'),
|
|
513
512
|
'fastcore.nbio._split_cell': ('nbio.html#_split_cell', 'fastcore/nbio.py'),
|
|
514
513
|
'fastcore.nbio._split_mime': ('nbio.html#_split_mime', 'fastcore/nbio.py'),
|
|
515
|
-
'fastcore.nbio.apply_controls': ('nbio.html#apply_controls', 'fastcore/nbio.py'),
|
|
516
514
|
'fastcore.nbio.cell2xml': ('nbio.html#cell2xml', 'fastcore/nbio.py'),
|
|
517
515
|
'fastcore.nbio.cells2xml': ('nbio.html#cells2xml', 'fastcore/nbio.py'),
|
|
518
516
|
'fastcore.nbio.concat_streams': ('nbio.html#concat_streams', 'fastcore/nbio.py'),
|
|
@@ -525,6 +523,7 @@ d = { 'settings': { 'branch': 'main',
|
|
|
525
523
|
'fastcore.nbio.nb2dict': ('nbio.html#nb2dict', 'fastcore/nbio.py'),
|
|
526
524
|
'fastcore.nbio.nb2str': ('nbio.html#nb2str', 'fastcore/nbio.py'),
|
|
527
525
|
'fastcore.nbio.new_nb': ('nbio.html#new_nb', 'fastcore/nbio.py'),
|
|
526
|
+
'fastcore.nbio.preferred_msg_out': ('nbio.html#preferred_msg_out', 'fastcore/nbio.py'),
|
|
528
527
|
'fastcore.nbio.preferred_out': ('nbio.html#preferred_out', 'fastcore/nbio.py'),
|
|
529
528
|
'fastcore.nbio.read_nb': ('nbio.html#read_nb', 'fastcore/nbio.py'),
|
|
530
529
|
'fastcore.nbio.render_output': ('nbio.html#render_output', 'fastcore/nbio.py'),
|
|
@@ -5,15 +5,16 @@ Docs: https://fastcore.fast.ai/nbio.html.md"""
|
|
|
5
5
|
# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/13_nbio.ipynb.
|
|
6
6
|
|
|
7
7
|
# %% auto #0
|
|
8
|
-
__all__ = ['NbCell', 'dict2nb', 'read_nb', 'mk_cell', 'new_nb', 'nb2dict', 'nb2str', 'write_nb', 'preferred_out',
|
|
9
|
-
'
|
|
8
|
+
__all__ = ['NbCell', 'dict2nb', 'read_nb', 'mk_cell', 'new_nb', 'nb2dict', 'nb2str', 'write_nb', 'preferred_out', 'mk_stream',
|
|
9
|
+
'mk_result', 'mk_display', 'mk_error', 'concat_streams', 'preferred_msg_out', 'render_output',
|
|
10
10
|
'render_outputs', 'render_text', 'cell2xml', 'cells2xml', 'Notebook']
|
|
11
11
|
|
|
12
12
|
# %% ../nbs/13_nbio.ipynb #954ca1aa
|
|
13
13
|
from .basics import *
|
|
14
|
-
from .xtras import rtoken_hex
|
|
14
|
+
from .xtras import rtoken_hex,clean_cli_output
|
|
15
15
|
from .imports import *
|
|
16
16
|
from .ansi import ansi2html
|
|
17
|
+
from .meta import delegates
|
|
17
18
|
|
|
18
19
|
import ast,functools
|
|
19
20
|
from pprint import pformat,pprint
|
|
@@ -159,16 +160,6 @@ def preferred_out(data, html1st=True, include_imgs=False):
|
|
|
159
160
|
if (text := data.get(mt)): return mt,text
|
|
160
161
|
return 'text/plain',''
|
|
161
162
|
|
|
162
|
-
# %% ../nbs/13_nbio.ipynb #efec6078
|
|
163
|
-
def apply_controls(text):
|
|
164
|
-
r"Apply \r and \b to text, returning processed result"
|
|
165
|
-
lines = text.split('\n')
|
|
166
|
-
for i, line in enumerate(lines):
|
|
167
|
-
if 0<(rpos := line.rfind('\r'))<len(line)-1: lines[i] = line[rpos+1:]
|
|
168
|
-
text = '\n'.join(lines)
|
|
169
|
-
while (pos := text.find('\b')) >= 0: text = text[:max(0, pos-1)] + text[pos+1:]
|
|
170
|
-
return text
|
|
171
|
-
|
|
172
163
|
# %% ../nbs/13_nbio.ipynb #24a47a87
|
|
173
164
|
def _join(d): return ''.join(d) if isinstance(d, list) else d
|
|
174
165
|
|
|
@@ -198,17 +189,19 @@ def concat_streams(outputs):
|
|
|
198
189
|
streams, res, execute_results = {}, [], []
|
|
199
190
|
for out in outputs:
|
|
200
191
|
if out['output_type'] == 'stream':
|
|
201
|
-
name
|
|
202
|
-
streams[name] =
|
|
192
|
+
name = out['name']
|
|
193
|
+
streams[name] = streams.get(name, '') + _join(out['text'])
|
|
203
194
|
elif out['output_type'] in ('error','execute_result'): execute_results.append(out)
|
|
204
195
|
else: res.append(out)
|
|
205
|
-
|
|
206
|
-
|
|
196
|
+
for name in ('stdout','stderr'):
|
|
197
|
+
if name in streams: res.append(mk_stream(name, clean_cli_output(streams[name], strip=False)))
|
|
207
198
|
res.extend(execute_results)
|
|
208
199
|
return res
|
|
209
200
|
|
|
210
201
|
# %% ../nbs/13_nbio.ipynb #a3deacac
|
|
211
|
-
|
|
202
|
+
@delegates(preferred_out)
|
|
203
|
+
def preferred_msg_out(out, **kwargs):
|
|
204
|
+
"Preferred mime type and content for any Jupyter output dict (stream, error, or data-bearing)"
|
|
212
205
|
typ = out['output_type']
|
|
213
206
|
if typ == 'stream': return 'text/plain', _join(out.get('text', ""))
|
|
214
207
|
elif typ == 'error': return 'text/plain', '\n'.join(out.get('traceback', []))
|
|
@@ -221,7 +214,7 @@ def render_output(out):
|
|
|
221
214
|
def _fmt(text):
|
|
222
215
|
res = ansi2html(str(text))
|
|
223
216
|
return f'<pre class="!border-0 !rounded-none !my-0 !p-0"><code class="nohighlight">{res}</code></pre>'
|
|
224
|
-
ptyp,d =
|
|
217
|
+
ptyp,d = preferred_msg_out(out, html1st=True, include_imgs=True)
|
|
225
218
|
d = _join(d)
|
|
226
219
|
if ptyp=='text/plain': return _fmt(d)
|
|
227
220
|
elif ptyp=='text/html': return d
|
|
@@ -242,7 +235,7 @@ def render_outputs(outputs):
|
|
|
242
235
|
# %% ../nbs/13_nbio.ipynb #88b0018a
|
|
243
236
|
def _render_text(out, html1st=False):
|
|
244
237
|
typ = out['output_type']
|
|
245
|
-
mime,d =
|
|
238
|
+
mime,d = preferred_msg_out(out, html1st=html1st, include_imgs=False)
|
|
246
239
|
d = _join(d)
|
|
247
240
|
if not d: return None
|
|
248
241
|
attrs = {}
|
|
@@ -713,12 +713,16 @@ def frontmatter(txt:str)->tuple:
|
|
|
713
713
|
|
|
714
714
|
# %% ../nbs/03_xtras.ipynb #45eb5141
|
|
715
715
|
def clean_cli_output(txt:str, strip:bool=True):
|
|
716
|
-
"
|
|
716
|
+
r"Render CLI output as it appears on screen: alternate screen, `\r` overwrites, `\b` backspaces, and ANSI escapes"
|
|
717
717
|
if '\x1b[?1049h' in txt:
|
|
718
718
|
if '\x1b[?1049l' not in txt: return ''
|
|
719
719
|
txt = txt.rsplit('\x1b[?1049l', 1)[-1]
|
|
720
720
|
txt = txt.replace('\r\n', '\n')
|
|
721
|
-
|
|
721
|
+
def _line(l):
|
|
722
|
+
l = l.rstrip('\r').rsplit('\r', 1)[-1] # trailing \r overwrites nothing; else keep last overwrite
|
|
723
|
+
while (i := l.find('\b')) != -1: l = l[:i] if i==len(l)-1 else l[:max(0,i-1)] + l[i+1:]
|
|
724
|
+
return l
|
|
725
|
+
res = '\n'.join(_line(l) for l in txt.split('\n'))
|
|
722
726
|
return strip_ansi(res, term_queries=True) if strip else res
|
|
723
727
|
|
|
724
728
|
# %% ../nbs/03_xtras.ipynb #35368de5
|
|
@@ -1153,7 +1157,7 @@ def mtime_policy(
|
|
|
1153
1157
|
if (filepath is None)==(arg is None): raise TypeError('Pass exactly one of `filepath` or `arg`')
|
|
1154
1158
|
def _expired(mtime, fp):
|
|
1155
1159
|
current_mtime = getmtime(fp)
|
|
1156
|
-
return current_mtime if mtime is None or current_mtime
|
|
1160
|
+
return current_mtime if mtime is None or current_mtime!=mtime else None
|
|
1157
1161
|
if arg is None: return lambda mtime: _expired(mtime, filepath)
|
|
1158
1162
|
def policy(mtime, args, kwargs): return _expired(mtime, kwargs[arg] if isinstance(arg,str) else args[arg])
|
|
1159
1163
|
policy.needs_args = True
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: fastcore
|
|
3
|
+
Version: 2.0.5
|
|
4
|
+
Summary: Python supercharged for fastai development
|
|
5
|
+
Author-email: Jeremy Howard and Sylvain Gugger <infos@fast.ai>
|
|
6
|
+
License: Apache-2.0
|
|
7
|
+
Project-URL: Repository, https://github.com/AnswerDotAI/fastcore/
|
|
8
|
+
Project-URL: Documentation, https://fastcore.fast.ai/
|
|
9
|
+
Keywords: python
|
|
10
|
+
Classifier: Natural Language :: English
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
+
Requires-Python: >=3.11
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Provides-Extra: dev
|
|
19
|
+
Requires-Dist: numpy; extra == "dev"
|
|
20
|
+
Requires-Dist: nbdev>=0.2.39; extra == "dev"
|
|
21
|
+
Requires-Dist: matplotlib; extra == "dev"
|
|
22
|
+
Requires-Dist: pillow; extra == "dev"
|
|
23
|
+
Requires-Dist: torch; extra == "dev"
|
|
24
|
+
Requires-Dist: pandas; extra == "dev"
|
|
25
|
+
Requires-Dist: nbclassic; extra == "dev"
|
|
26
|
+
Requires-Dist: pysym2md>=0.0.6; extra == "dev"
|
|
27
|
+
Requires-Dist: llms-txt; extra == "dev"
|
|
28
|
+
Requires-Dist: plum-dispatch; extra == "dev"
|
|
29
|
+
Requires-Dist: toolslm; extra == "dev"
|
|
30
|
+
Dynamic: license-file
|
|
31
|
+
|
|
32
|
+
# Welcome to fastcore
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
|
|
36
|
+
|
|
37
|
+
> [!NOTE]
|
|
38
|
+
>
|
|
39
|
+
> ### fastcore v2
|
|
40
|
+
>
|
|
41
|
+
> In July 2026 we released fastcore v2, which removes or relocates a number of APIs that had accumulated better alternatives. If you use `from fastcore.utils import *` (or `fastcore.all`), most of these changes won’t affect you. The breaking changes: `Param` is gone from `fastcore.script`; use plain type annotations with docments, or `typing.Annotated[type, "help"]`, optionally with a `dict` of argparse arguments for advanced features. [`L`](https://fastcore.fast.ai/foundation.html#l)’s `starmap`, `starfilter`, and the other `star*`/`rstar*` methods are replaced by the [`star`](https://fastcore.fast.ai/foundation.html#star) and [`rstar`](https://fastcore.fast.ai/foundation.html#rstar) function adapters, which compose with every [`L`](https://fastcore.fast.ai/foundation.html#l) method (e.g. `t.map(star(f))`); relatedly, `spread` is replaced by [`star`](https://fastcore.fast.ai/foundation.html#star), and `dspread` is renamed to [`dstar`](https://fastcore.fast.ai/basics.html#dstar). Async helpers now live in the new `fastcore.aio` module: [`run_sync`](https://fastcore.fast.ai/aio.html#run_sync), [`iter_sync`](https://fastcore.fast.ai/aio.html#iter_sync), and [`ctx_sync`](https://fastcore.fast.ai/aio.html#ctx_sync) moved there from `net`, and [`maybe_await`](https://fastcore.fast.ai/aio.html#maybe_await), [`then`](https://fastcore.fast.ai/aio.html#then), [`mapa`](https://fastcore.fast.ai/aio.html#mapa), [`acache`](https://fastcore.fast.ai/aio.html#acache), [`reawaitable`](https://fastcore.fast.ai/aio.html#reawaitable), [`is_async_callable`](https://fastcore.fast.ai/aio.html#is_async_callable), and the other async utilities moved there from `xtras`. [`Config`](https://fastcore.fast.ai/xtras.html#config) and the config file functions moved from `foundation` to `xtras`. `fastcore.net` lost its request builders (`urlrequest`, `urlsend`, `do_request`, `urlcheck`) and `clean_type_str` is gone. `parallel_gen` is removed; the stdlib [`ProcessPoolExecutor`](https://fastcore.fast.ai/parallel.html#processpoolexecutor) `initializer` pattern replaces it (fastai’s `parallel_tokenize` shows the recipe). Python 3.11 or later is now required. If you need the old APIs, pin `fastcore<2`.
|
|
42
|
+
|
|
43
|
+
Python is a powerful, dynamic language. Rather than bake everything into the language, it lets the programmer customize it to make it work for them. `fastcore` uses this flexibility to add to Python features inspired by other languages we’ve loved, mixins from Ruby, and currying, binding, and more from Haskell. It also adds some “missing features” and clean up some rough edges in the Python standard library, such as simplifying parallel processing, and bringing ideas from NumPy over to Python’s `list` type.
|
|
44
|
+
|
|
45
|
+
## Getting started
|
|
46
|
+
|
|
47
|
+
To install fastcore run: `conda install fastcore -c fastai` (if you use Anaconda, which we recommend) or `pip install fastcore`. For an [editable install](https://stackoverflow.com/questions/35064426/when-would-the-e-editable-option-be-useful-with-pip-install), clone this repo and run: `pip install -e ".[dev]"`. fastcore is tested to work on Ubuntu, macOS and Windows (versions tested are those shown with the `-latest` suffix [here](https://docs.github.com/en/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources)).
|
|
48
|
+
|
|
49
|
+
`fastcore` contains many features, including:
|
|
50
|
+
|
|
51
|
+
- `fastcore.test`: Simple testing functions
|
|
52
|
+
- `fastcore.foundation`: Mixins, delegation, composition, and more
|
|
53
|
+
- `fastcore.xtras`: Utility functions to help with functional-style programming, parallel processing, and more
|
|
54
|
+
|
|
55
|
+
To get started, we recommend you read through [the fastcore tour](https://fastcore.fast.ai/tour.html).
|
|
56
|
+
|
|
57
|
+
## Contributing
|
|
58
|
+
|
|
59
|
+
After you clone this repository, please run `nbdev_install_hooks` in your terminal. This sets up git hooks, which clean up the notebooks to remove the extraneous stuff stored in the notebooks (e.g. which cells you ran) which causes unnecessary merge conflicts.
|
|
60
|
+
|
|
61
|
+
To run the tests in parallel, launch `nbdev_test`.
|
|
62
|
+
|
|
63
|
+
Before submitting a PR, check that the local library and notebooks match.
|
|
64
|
+
|
|
65
|
+
- If you made a change to the notebooks in one of the exported cells, you can export it to the library with `nbdev_prepare`.
|
|
66
|
+
- If you made a change to the library, you can export it back to the notebooks with `nbdev_update`.
|
fastcore-2.0.3/PKG-INFO
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: fastcore
|
|
3
|
-
Version: 2.0.3
|
|
4
|
-
Summary: Python supercharged for fastai development
|
|
5
|
-
Author-email: Jeremy Howard and Sylvain Gugger <infos@fast.ai>
|
|
6
|
-
License: Apache-2.0
|
|
7
|
-
Project-URL: Repository, https://github.com/AnswerDotAI/fastcore/
|
|
8
|
-
Project-URL: Documentation, https://fastcore.fast.ai/
|
|
9
|
-
Keywords: python
|
|
10
|
-
Classifier: Natural Language :: English
|
|
11
|
-
Classifier: Intended Audience :: Developers
|
|
12
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
-
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
-
Requires-Python: >=3.11
|
|
16
|
-
Description-Content-Type: text/markdown
|
|
17
|
-
License-File: LICENSE
|
|
18
|
-
Provides-Extra: dev
|
|
19
|
-
Requires-Dist: numpy; extra == "dev"
|
|
20
|
-
Requires-Dist: nbdev>=0.2.39; extra == "dev"
|
|
21
|
-
Requires-Dist: matplotlib; extra == "dev"
|
|
22
|
-
Requires-Dist: pillow; extra == "dev"
|
|
23
|
-
Requires-Dist: torch; extra == "dev"
|
|
24
|
-
Requires-Dist: pandas; extra == "dev"
|
|
25
|
-
Requires-Dist: nbclassic; extra == "dev"
|
|
26
|
-
Requires-Dist: pysym2md>=0.0.6; extra == "dev"
|
|
27
|
-
Requires-Dist: llms-txt; extra == "dev"
|
|
28
|
-
Requires-Dist: plum-dispatch; extra == "dev"
|
|
29
|
-
Requires-Dist: toolslm; extra == "dev"
|
|
30
|
-
Dynamic: license-file
|
|
31
|
-
|
|
32
|
-
# Welcome to fastcore
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
|
|
36
|
-
|
|
37
|
-
## fastcore v2
|
|
38
|
-
|
|
39
|
-
In July 2026 we released fastcore v2, which removes or relocates a
|
|
40
|
-
number of APIs that had accumulated better alternatives. If you use
|
|
41
|
-
`from fastcore.utils import *` (or `fastcore.all`), most of these
|
|
42
|
-
changes won’t affect you. The breaking changes: `Param` is gone from
|
|
43
|
-
`fastcore.script`; use plain type annotations with docments, or
|
|
44
|
-
`typing.Annotated[type, "help"]`, optionally with a `dict` of argparse
|
|
45
|
-
arguments for advanced features.
|
|
46
|
-
[`L`](https://fastcore.fast.ai/foundation.html#l)’s `starmap`,
|
|
47
|
-
`starfilter`, and the other `star*`/`rstar*` methods are replaced by the
|
|
48
|
-
[`star`](https://fastcore.fast.ai/foundation.html#star) and
|
|
49
|
-
[`rstar`](https://fastcore.fast.ai/foundation.html#rstar) function
|
|
50
|
-
adapters, which compose with every
|
|
51
|
-
[`L`](https://fastcore.fast.ai/foundation.html#l) method
|
|
52
|
-
(e.g. `t.map(star(f))`); relatedly, `spread` is replaced by
|
|
53
|
-
[`star`](https://fastcore.fast.ai/foundation.html#star), and `dspread`
|
|
54
|
-
is renamed to [`dstar`](https://fastcore.fast.ai/basics.html#dstar).
|
|
55
|
-
Async helpers now live in the new `fastcore.aio` module:
|
|
56
|
-
[`run_sync`](https://fastcore.fast.ai/aio.html#run_sync),
|
|
57
|
-
[`iter_sync`](https://fastcore.fast.ai/aio.html#iter_sync), and
|
|
58
|
-
[`ctx_sync`](https://fastcore.fast.ai/aio.html#ctx_sync) moved there
|
|
59
|
-
from `net`, and
|
|
60
|
-
[`maybe_await`](https://fastcore.fast.ai/aio.html#maybe_await),
|
|
61
|
-
[`then`](https://fastcore.fast.ai/aio.html#then),
|
|
62
|
-
[`mapa`](https://fastcore.fast.ai/aio.html#mapa),
|
|
63
|
-
[`acache`](https://fastcore.fast.ai/aio.html#acache),
|
|
64
|
-
[`reawaitable`](https://fastcore.fast.ai/aio.html#reawaitable),
|
|
65
|
-
[`is_async_callable`](https://fastcore.fast.ai/aio.html#is_async_callable),
|
|
66
|
-
and the other async utilities moved there from `xtras`.
|
|
67
|
-
[`Config`](https://fastcore.fast.ai/xtras.html#config) and the config
|
|
68
|
-
file functions moved from `foundation` to `xtras`. `fastcore.net` lost
|
|
69
|
-
its request builders (`urlrequest`, `urlsend`, `do_request`, `urlcheck`)
|
|
70
|
-
and `clean_type_str` is gone. `parallel_gen` is removed; the stdlib
|
|
71
|
-
[`ProcessPoolExecutor`](https://fastcore.fast.ai/parallel.html#processpoolexecutor)
|
|
72
|
-
`initializer` pattern replaces it (fastai’s `parallel_tokenize` shows
|
|
73
|
-
the recipe). Python 3.11 or later is now required. If you need the old
|
|
74
|
-
APIs, pin `fastcore<2`.
|
|
75
|
-
|
|
76
|
-
Python is a powerful, dynamic language. Rather than bake everything into
|
|
77
|
-
the language, it lets the programmer customize it to make it work for
|
|
78
|
-
them. `fastcore` uses this flexibility to add to Python features
|
|
79
|
-
inspired by other languages we’ve loved, mixins from Ruby, and currying,
|
|
80
|
-
binding, and more from Haskell. It also adds some “missing features” and
|
|
81
|
-
clean up some rough edges in the Python standard library, such as
|
|
82
|
-
simplifying parallel processing, and bringing ideas from NumPy over to
|
|
83
|
-
Python’s `list` type.
|
|
84
|
-
|
|
85
|
-
## Getting started
|
|
86
|
-
|
|
87
|
-
To install fastcore run: `conda install fastcore -c fastai` (if you use
|
|
88
|
-
Anaconda, which we recommend) or `pip install fastcore`. For an
|
|
89
|
-
[editable
|
|
90
|
-
install](https://stackoverflow.com/questions/35064426/when-would-the-e-editable-option-be-useful-with-pip-install),
|
|
91
|
-
clone this repo and run: `pip install -e ".[dev]"`. fastcore is tested
|
|
92
|
-
to work on Ubuntu, macOS and Windows (versions tested are those shown
|
|
93
|
-
with the `-latest` suffix
|
|
94
|
-
[here](https://docs.github.com/en/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources)).
|
|
95
|
-
|
|
96
|
-
`fastcore` contains many features, including:
|
|
97
|
-
|
|
98
|
-
- `fastcore.test`: Simple testing functions
|
|
99
|
-
- `fastcore.foundation`: Mixins, delegation, composition, and more
|
|
100
|
-
- `fastcore.xtras`: Utility functions to help with functional-style
|
|
101
|
-
programming, parallel processing, and more
|
|
102
|
-
|
|
103
|
-
To get started, we recommend you read through [the fastcore
|
|
104
|
-
tour](https://fastcore.fast.ai/tour.html).
|
|
105
|
-
|
|
106
|
-
## Contributing
|
|
107
|
-
|
|
108
|
-
After you clone this repository, please run `nbdev_install_hooks` in
|
|
109
|
-
your terminal. This sets up git hooks, which clean up the notebooks to
|
|
110
|
-
remove the extraneous stuff stored in the notebooks (e.g. which cells
|
|
111
|
-
you ran) which causes unnecessary merge conflicts.
|
|
112
|
-
|
|
113
|
-
To run the tests in parallel, launch `nbdev_test`.
|
|
114
|
-
|
|
115
|
-
Before submitting a PR, check that the local library and notebooks
|
|
116
|
-
match.
|
|
117
|
-
|
|
118
|
-
- If you made a change to the notebooks in one of the exported cells,
|
|
119
|
-
you can export it to the library with `nbdev_prepare`.
|
|
120
|
-
- If you made a change to the library, you can export it back to the
|
|
121
|
-
notebooks with `nbdev_update`.
|
fastcore-2.0.3/README.md
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
# Welcome to fastcore
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
|
|
5
|
-
|
|
6
|
-
## fastcore v2
|
|
7
|
-
|
|
8
|
-
In July 2026 we released fastcore v2, which removes or relocates a
|
|
9
|
-
number of APIs that had accumulated better alternatives. If you use
|
|
10
|
-
`from fastcore.utils import *` (or `fastcore.all`), most of these
|
|
11
|
-
changes won’t affect you. The breaking changes: `Param` is gone from
|
|
12
|
-
`fastcore.script`; use plain type annotations with docments, or
|
|
13
|
-
`typing.Annotated[type, "help"]`, optionally with a `dict` of argparse
|
|
14
|
-
arguments for advanced features.
|
|
15
|
-
[`L`](https://fastcore.fast.ai/foundation.html#l)’s `starmap`,
|
|
16
|
-
`starfilter`, and the other `star*`/`rstar*` methods are replaced by the
|
|
17
|
-
[`star`](https://fastcore.fast.ai/foundation.html#star) and
|
|
18
|
-
[`rstar`](https://fastcore.fast.ai/foundation.html#rstar) function
|
|
19
|
-
adapters, which compose with every
|
|
20
|
-
[`L`](https://fastcore.fast.ai/foundation.html#l) method
|
|
21
|
-
(e.g. `t.map(star(f))`); relatedly, `spread` is replaced by
|
|
22
|
-
[`star`](https://fastcore.fast.ai/foundation.html#star), and `dspread`
|
|
23
|
-
is renamed to [`dstar`](https://fastcore.fast.ai/basics.html#dstar).
|
|
24
|
-
Async helpers now live in the new `fastcore.aio` module:
|
|
25
|
-
[`run_sync`](https://fastcore.fast.ai/aio.html#run_sync),
|
|
26
|
-
[`iter_sync`](https://fastcore.fast.ai/aio.html#iter_sync), and
|
|
27
|
-
[`ctx_sync`](https://fastcore.fast.ai/aio.html#ctx_sync) moved there
|
|
28
|
-
from `net`, and
|
|
29
|
-
[`maybe_await`](https://fastcore.fast.ai/aio.html#maybe_await),
|
|
30
|
-
[`then`](https://fastcore.fast.ai/aio.html#then),
|
|
31
|
-
[`mapa`](https://fastcore.fast.ai/aio.html#mapa),
|
|
32
|
-
[`acache`](https://fastcore.fast.ai/aio.html#acache),
|
|
33
|
-
[`reawaitable`](https://fastcore.fast.ai/aio.html#reawaitable),
|
|
34
|
-
[`is_async_callable`](https://fastcore.fast.ai/aio.html#is_async_callable),
|
|
35
|
-
and the other async utilities moved there from `xtras`.
|
|
36
|
-
[`Config`](https://fastcore.fast.ai/xtras.html#config) and the config
|
|
37
|
-
file functions moved from `foundation` to `xtras`. `fastcore.net` lost
|
|
38
|
-
its request builders (`urlrequest`, `urlsend`, `do_request`, `urlcheck`)
|
|
39
|
-
and `clean_type_str` is gone. `parallel_gen` is removed; the stdlib
|
|
40
|
-
[`ProcessPoolExecutor`](https://fastcore.fast.ai/parallel.html#processpoolexecutor)
|
|
41
|
-
`initializer` pattern replaces it (fastai’s `parallel_tokenize` shows
|
|
42
|
-
the recipe). Python 3.11 or later is now required. If you need the old
|
|
43
|
-
APIs, pin `fastcore<2`.
|
|
44
|
-
|
|
45
|
-
Python is a powerful, dynamic language. Rather than bake everything into
|
|
46
|
-
the language, it lets the programmer customize it to make it work for
|
|
47
|
-
them. `fastcore` uses this flexibility to add to Python features
|
|
48
|
-
inspired by other languages we’ve loved, mixins from Ruby, and currying,
|
|
49
|
-
binding, and more from Haskell. It also adds some “missing features” and
|
|
50
|
-
clean up some rough edges in the Python standard library, such as
|
|
51
|
-
simplifying parallel processing, and bringing ideas from NumPy over to
|
|
52
|
-
Python’s `list` type.
|
|
53
|
-
|
|
54
|
-
## Getting started
|
|
55
|
-
|
|
56
|
-
To install fastcore run: `conda install fastcore -c fastai` (if you use
|
|
57
|
-
Anaconda, which we recommend) or `pip install fastcore`. For an
|
|
58
|
-
[editable
|
|
59
|
-
install](https://stackoverflow.com/questions/35064426/when-would-the-e-editable-option-be-useful-with-pip-install),
|
|
60
|
-
clone this repo and run: `pip install -e ".[dev]"`. fastcore is tested
|
|
61
|
-
to work on Ubuntu, macOS and Windows (versions tested are those shown
|
|
62
|
-
with the `-latest` suffix
|
|
63
|
-
[here](https://docs.github.com/en/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources)).
|
|
64
|
-
|
|
65
|
-
`fastcore` contains many features, including:
|
|
66
|
-
|
|
67
|
-
- `fastcore.test`: Simple testing functions
|
|
68
|
-
- `fastcore.foundation`: Mixins, delegation, composition, and more
|
|
69
|
-
- `fastcore.xtras`: Utility functions to help with functional-style
|
|
70
|
-
programming, parallel processing, and more
|
|
71
|
-
|
|
72
|
-
To get started, we recommend you read through [the fastcore
|
|
73
|
-
tour](https://fastcore.fast.ai/tour.html).
|
|
74
|
-
|
|
75
|
-
## Contributing
|
|
76
|
-
|
|
77
|
-
After you clone this repository, please run `nbdev_install_hooks` in
|
|
78
|
-
your terminal. This sets up git hooks, which clean up the notebooks to
|
|
79
|
-
remove the extraneous stuff stored in the notebooks (e.g. which cells
|
|
80
|
-
you ran) which causes unnecessary merge conflicts.
|
|
81
|
-
|
|
82
|
-
To run the tests in parallel, launch `nbdev_test`.
|
|
83
|
-
|
|
84
|
-
Before submitting a PR, check that the local library and notebooks
|
|
85
|
-
match.
|
|
86
|
-
|
|
87
|
-
- If you made a change to the notebooks in one of the exported cells,
|
|
88
|
-
you can export it to the library with `nbdev_prepare`.
|
|
89
|
-
- If you made a change to the library, you can export it back to the
|
|
90
|
-
notebooks with `nbdev_update`.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "2.0.3"
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: fastcore
|
|
3
|
-
Version: 2.0.3
|
|
4
|
-
Summary: Python supercharged for fastai development
|
|
5
|
-
Author-email: Jeremy Howard and Sylvain Gugger <infos@fast.ai>
|
|
6
|
-
License: Apache-2.0
|
|
7
|
-
Project-URL: Repository, https://github.com/AnswerDotAI/fastcore/
|
|
8
|
-
Project-URL: Documentation, https://fastcore.fast.ai/
|
|
9
|
-
Keywords: python
|
|
10
|
-
Classifier: Natural Language :: English
|
|
11
|
-
Classifier: Intended Audience :: Developers
|
|
12
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
-
Classifier: Programming Language :: Python :: 3
|
|
14
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
-
Requires-Python: >=3.11
|
|
16
|
-
Description-Content-Type: text/markdown
|
|
17
|
-
License-File: LICENSE
|
|
18
|
-
Provides-Extra: dev
|
|
19
|
-
Requires-Dist: numpy; extra == "dev"
|
|
20
|
-
Requires-Dist: nbdev>=0.2.39; extra == "dev"
|
|
21
|
-
Requires-Dist: matplotlib; extra == "dev"
|
|
22
|
-
Requires-Dist: pillow; extra == "dev"
|
|
23
|
-
Requires-Dist: torch; extra == "dev"
|
|
24
|
-
Requires-Dist: pandas; extra == "dev"
|
|
25
|
-
Requires-Dist: nbclassic; extra == "dev"
|
|
26
|
-
Requires-Dist: pysym2md>=0.0.6; extra == "dev"
|
|
27
|
-
Requires-Dist: llms-txt; extra == "dev"
|
|
28
|
-
Requires-Dist: plum-dispatch; extra == "dev"
|
|
29
|
-
Requires-Dist: toolslm; extra == "dev"
|
|
30
|
-
Dynamic: license-file
|
|
31
|
-
|
|
32
|
-
# Welcome to fastcore
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->
|
|
36
|
-
|
|
37
|
-
## fastcore v2
|
|
38
|
-
|
|
39
|
-
In July 2026 we released fastcore v2, which removes or relocates a
|
|
40
|
-
number of APIs that had accumulated better alternatives. If you use
|
|
41
|
-
`from fastcore.utils import *` (or `fastcore.all`), most of these
|
|
42
|
-
changes won’t affect you. The breaking changes: `Param` is gone from
|
|
43
|
-
`fastcore.script`; use plain type annotations with docments, or
|
|
44
|
-
`typing.Annotated[type, "help"]`, optionally with a `dict` of argparse
|
|
45
|
-
arguments for advanced features.
|
|
46
|
-
[`L`](https://fastcore.fast.ai/foundation.html#l)’s `starmap`,
|
|
47
|
-
`starfilter`, and the other `star*`/`rstar*` methods are replaced by the
|
|
48
|
-
[`star`](https://fastcore.fast.ai/foundation.html#star) and
|
|
49
|
-
[`rstar`](https://fastcore.fast.ai/foundation.html#rstar) function
|
|
50
|
-
adapters, which compose with every
|
|
51
|
-
[`L`](https://fastcore.fast.ai/foundation.html#l) method
|
|
52
|
-
(e.g. `t.map(star(f))`); relatedly, `spread` is replaced by
|
|
53
|
-
[`star`](https://fastcore.fast.ai/foundation.html#star), and `dspread`
|
|
54
|
-
is renamed to [`dstar`](https://fastcore.fast.ai/basics.html#dstar).
|
|
55
|
-
Async helpers now live in the new `fastcore.aio` module:
|
|
56
|
-
[`run_sync`](https://fastcore.fast.ai/aio.html#run_sync),
|
|
57
|
-
[`iter_sync`](https://fastcore.fast.ai/aio.html#iter_sync), and
|
|
58
|
-
[`ctx_sync`](https://fastcore.fast.ai/aio.html#ctx_sync) moved there
|
|
59
|
-
from `net`, and
|
|
60
|
-
[`maybe_await`](https://fastcore.fast.ai/aio.html#maybe_await),
|
|
61
|
-
[`then`](https://fastcore.fast.ai/aio.html#then),
|
|
62
|
-
[`mapa`](https://fastcore.fast.ai/aio.html#mapa),
|
|
63
|
-
[`acache`](https://fastcore.fast.ai/aio.html#acache),
|
|
64
|
-
[`reawaitable`](https://fastcore.fast.ai/aio.html#reawaitable),
|
|
65
|
-
[`is_async_callable`](https://fastcore.fast.ai/aio.html#is_async_callable),
|
|
66
|
-
and the other async utilities moved there from `xtras`.
|
|
67
|
-
[`Config`](https://fastcore.fast.ai/xtras.html#config) and the config
|
|
68
|
-
file functions moved from `foundation` to `xtras`. `fastcore.net` lost
|
|
69
|
-
its request builders (`urlrequest`, `urlsend`, `do_request`, `urlcheck`)
|
|
70
|
-
and `clean_type_str` is gone. `parallel_gen` is removed; the stdlib
|
|
71
|
-
[`ProcessPoolExecutor`](https://fastcore.fast.ai/parallel.html#processpoolexecutor)
|
|
72
|
-
`initializer` pattern replaces it (fastai’s `parallel_tokenize` shows
|
|
73
|
-
the recipe). Python 3.11 or later is now required. If you need the old
|
|
74
|
-
APIs, pin `fastcore<2`.
|
|
75
|
-
|
|
76
|
-
Python is a powerful, dynamic language. Rather than bake everything into
|
|
77
|
-
the language, it lets the programmer customize it to make it work for
|
|
78
|
-
them. `fastcore` uses this flexibility to add to Python features
|
|
79
|
-
inspired by other languages we’ve loved, mixins from Ruby, and currying,
|
|
80
|
-
binding, and more from Haskell. It also adds some “missing features” and
|
|
81
|
-
clean up some rough edges in the Python standard library, such as
|
|
82
|
-
simplifying parallel processing, and bringing ideas from NumPy over to
|
|
83
|
-
Python’s `list` type.
|
|
84
|
-
|
|
85
|
-
## Getting started
|
|
86
|
-
|
|
87
|
-
To install fastcore run: `conda install fastcore -c fastai` (if you use
|
|
88
|
-
Anaconda, which we recommend) or `pip install fastcore`. For an
|
|
89
|
-
[editable
|
|
90
|
-
install](https://stackoverflow.com/questions/35064426/when-would-the-e-editable-option-be-useful-with-pip-install),
|
|
91
|
-
clone this repo and run: `pip install -e ".[dev]"`. fastcore is tested
|
|
92
|
-
to work on Ubuntu, macOS and Windows (versions tested are those shown
|
|
93
|
-
with the `-latest` suffix
|
|
94
|
-
[here](https://docs.github.com/en/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources)).
|
|
95
|
-
|
|
96
|
-
`fastcore` contains many features, including:
|
|
97
|
-
|
|
98
|
-
- `fastcore.test`: Simple testing functions
|
|
99
|
-
- `fastcore.foundation`: Mixins, delegation, composition, and more
|
|
100
|
-
- `fastcore.xtras`: Utility functions to help with functional-style
|
|
101
|
-
programming, parallel processing, and more
|
|
102
|
-
|
|
103
|
-
To get started, we recommend you read through [the fastcore
|
|
104
|
-
tour](https://fastcore.fast.ai/tour.html).
|
|
105
|
-
|
|
106
|
-
## Contributing
|
|
107
|
-
|
|
108
|
-
After you clone this repository, please run `nbdev_install_hooks` in
|
|
109
|
-
your terminal. This sets up git hooks, which clean up the notebooks to
|
|
110
|
-
remove the extraneous stuff stored in the notebooks (e.g. which cells
|
|
111
|
-
you ran) which causes unnecessary merge conflicts.
|
|
112
|
-
|
|
113
|
-
To run the tests in parallel, launch `nbdev_test`.
|
|
114
|
-
|
|
115
|
-
Before submitting a PR, check that the local library and notebooks
|
|
116
|
-
match.
|
|
117
|
-
|
|
118
|
-
- If you made a change to the notebooks in one of the exported cells,
|
|
119
|
-
you can export it to the library with `nbdev_prepare`.
|
|
120
|
-
- If you made a change to the library, you can export it back to the
|
|
121
|
-
notebooks with `nbdev_update`.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|