METADATA 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. Metadata-Version: 2.1
  2. Name: joblib
  3. Version: 0.16.0
  4. Summary: Lightweight pipelining: using Python functions as pipeline jobs.
  5. Home-page: https://joblib.readthedocs.io
  6. Author: Gael Varoquaux
  7. Author-email: gael.varoquaux@normalesup.org
  8. License: BSD
  9. Platform: any
  10. Classifier: Development Status :: 5 - Production/Stable
  11. Classifier: Environment :: Console
  12. Classifier: Intended Audience :: Developers
  13. Classifier: Intended Audience :: Science/Research
  14. Classifier: Intended Audience :: Education
  15. Classifier: License :: OSI Approved :: BSD License
  16. Classifier: Operating System :: OS Independent
  17. Classifier: Programming Language :: Python :: 3
  18. Classifier: Programming Language :: Python :: 3.6
  19. Classifier: Programming Language :: Python :: 3.7
  20. Classifier: Programming Language :: Python :: 3.8
  21. Classifier: Topic :: Scientific/Engineering
  22. Classifier: Topic :: Utilities
  23. Classifier: Topic :: Software Development :: Libraries
  24. Requires-Python: >=3.6
  25. Joblib is a set of tools to provide **lightweight pipelining in
  26. Python**. In particular:
  27. 1. transparent disk-caching of functions and lazy re-evaluation
  28. (memoize pattern)
  29. 2. easy simple parallel computing
  30. Joblib is optimized to be **fast** and **robust** on large
  31. data in particular and has specific optimizations for `numpy` arrays. It is
  32. **BSD-licensed**.
  33. ==================== ===============================================
  34. **Documentation:** https://joblib.readthedocs.io
  35. **Download:** https://pypi.python.org/pypi/joblib#downloads
  36. **Source code:** https://github.com/joblib/joblib
  37. **Report issues:** https://github.com/joblib/joblib/issues
  38. ==================== ===============================================
  39. Vision
  40. --------
  41. The vision is to provide tools to easily achieve better performance and
  42. reproducibility when working with long running jobs.
  43. * **Avoid computing the same thing twice**: code is often rerun again and
  44. again, for instance when prototyping computational-heavy jobs (as in
  45. scientific development), but hand-crafted solutions to alleviate this
  46. issue are error-prone and often lead to unreproducible results.
  47. * **Persist to disk transparently**: efficiently persisting
  48. arbitrary objects containing large data is hard. Using
  49. joblib's caching mechanism avoids hand-written persistence and
  50. implicitly links the file on disk to the execution context of
  51. the original Python object. As a result, joblib's persistence is
  52. good for resuming an application status or computational job, eg
  53. after a crash.
  54. Joblib addresses these problems while **leaving your code and your flow
  55. control as unmodified as possible** (no framework, no new paradigms).
  56. Main features
  57. ------------------
  58. 1) **Transparent and fast disk-caching of output value:** a memoize or
  59. make-like functionality for Python functions that works well for
  60. arbitrary Python objects, including very large numpy arrays. Separate
  61. persistence and flow-execution logic from domain logic or algorithmic
  62. code by writing the operations as a set of steps with well-defined
  63. inputs and outputs: Python functions. Joblib can save their
  64. computation to disk and rerun it only if necessary::
  65. >>> from joblib import Memory
  66. >>> cachedir = 'your_cache_dir_goes_here'
  67. >>> mem = Memory(cachedir)
  68. >>> import numpy as np
  69. >>> a = np.vander(np.arange(3)).astype(np.float)
  70. >>> square = mem.cache(np.square)
  71. >>> b = square(a) # doctest: +ELLIPSIS
  72. ________________________________________________________________________________
  73. [Memory] Calling square...
  74. square(array([[0., 0., 1.],
  75. [1., 1., 1.],
  76. [4., 2., 1.]]))
  77. ___________________________________________________________square - 0...s, 0.0min
  78. >>> c = square(a)
  79. >>> # The above call did not trigger an evaluation
  80. 2) **Embarrassingly parallel helper:** to make it easy to write readable
  81. parallel code and debug it quickly::
  82. >>> from joblib import Parallel, delayed
  83. >>> from math import sqrt
  84. >>> Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10))
  85. [0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
  86. 3) **Fast compressed Persistence**: a replacement for pickle to work
  87. efficiently on Python objects containing large data (
  88. *joblib.dump* & *joblib.load* ).
  89. ..
  90. >>> import shutil ; shutil.rmtree(cachedir)