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.
Files changed (45) hide show
  1. fastcore-2.0.5/PKG-INFO +66 -0
  2. fastcore-2.0.5/README.md +35 -0
  3. fastcore-2.0.5/fastcore/__init__.py +1 -0
  4. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/_modidx.py +1 -2
  5. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/nbio.py +13 -20
  6. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/xtras.py +7 -3
  7. fastcore-2.0.5/fastcore.egg-info/PKG-INFO +66 -0
  8. fastcore-2.0.3/PKG-INFO +0 -121
  9. fastcore-2.0.3/README.md +0 -90
  10. fastcore-2.0.3/fastcore/__init__.py +0 -1
  11. fastcore-2.0.3/fastcore.egg-info/PKG-INFO +0 -121
  12. {fastcore-2.0.3 → fastcore-2.0.5}/CONTRIBUTING.md +0 -0
  13. {fastcore-2.0.3 → fastcore-2.0.5}/LICENSE +0 -0
  14. {fastcore-2.0.3 → fastcore-2.0.5}/MANIFEST.in +0 -0
  15. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/aio.py +0 -0
  16. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/all.py +0 -0
  17. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/ansi.py +0 -0
  18. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/basics.py +0 -0
  19. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/dispatch.py +0 -0
  20. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/docments.py +0 -0
  21. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/docscrape.py +0 -0
  22. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/foundation.py +0 -0
  23. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/imghdr.py +0 -0
  24. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/imports.py +0 -0
  25. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/meta.py +0 -0
  26. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/nb_imports.py +0 -0
  27. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/net.py +0 -0
  28. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/parallel.py +0 -0
  29. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/py2pyi.py +0 -0
  30. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/script.py +0 -0
  31. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/shutil.py +0 -0
  32. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/style.py +0 -0
  33. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/test.py +0 -0
  34. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/tools.py +0 -0
  35. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/transform.py +0 -0
  36. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/utils.py +0 -0
  37. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/xdg.py +0 -0
  38. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore/xml.py +0 -0
  39. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore.egg-info/SOURCES.txt +0 -0
  40. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore.egg-info/dependency_links.txt +0 -0
  41. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore.egg-info/entry_points.txt +0 -0
  42. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore.egg-info/requires.txt +0 -0
  43. {fastcore-2.0.3 → fastcore-2.0.5}/fastcore.egg-info/top_level.txt +0 -0
  44. {fastcore-2.0.3 → fastcore-2.0.5}/pyproject.toml +0 -0
  45. {fastcore-2.0.3 → fastcore-2.0.5}/setup.cfg +0 -0
@@ -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`.
@@ -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
- 'apply_controls', 'mk_stream', 'mk_result', 'mk_display', 'mk_error', 'concat_streams', 'render_output',
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, text = out['name'], _join(out['text'])
202
- streams[name] = apply_controls(streams.get(name, '') + text)
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
- if 'stdout' in streams: res.append(mk_stream('stdout', streams['stdout']))
206
- if 'stderr' in streams: res.append(mk_stream('stderr', streams['stderr']))
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
- def _preferred_msg_out(out, **kwargs):
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 = _preferred_msg_out(out, html1st=True, include_imgs=True)
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 = _preferred_msg_out(out, html1st=html1st, include_imgs=False)
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
- "Clean CLI output by handling alternate screen, carriage returns, and ANSI escapes"
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
- res = '\n'.join(l.rsplit('\r', 1)[-1] for l in txt.split('\n'))
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>mtime else None
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