ELIC-0.1-foss-2018b-Python-3.6.6.eb 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. easyblock = 'Binary'
  2. name = 'ELIC'
  3. version = '0.1'
  4. versionsuffix = '-Python-%(pyver)s'
  5. homepage = 'https://gogs.elic.ucl.ac.be'
  6. description = """This repo provides additional Python and R extensions for ELIC ecosystem."""
  7. toolchain = {'name': 'foss', 'version': '2018b'}
  8. toolchainopts = {'pic': True}
  9. source_urls = ['https://github.com/ESMValGroup/ESMValTool/archive/']
  10. sources = [{'filename': 'ESMValTool.tar.gz', 'download_filename': 'v2.0a1.tar.gz'}]
  11. dependencies = [
  12. ('Python', '3.6.6'),
  13. ('NCL', '6.5.0'),
  14. ('R', '3.5.1', versionsuffix),
  15. ('CDO', '1.9.5'),
  16. ('NCO', '4.7.9'),
  17. ('ncview', '2.1.7'),
  18. ('GEOS', '3.6.2', versionsuffix),
  19. ('libjpeg-turbo', '2.0.0'),
  20. ('libpng', '1.6.34'),
  21. ('zlib', '1.2.11'),
  22. ('LibTIFF', '4.0.9'),
  23. ('freetype', '2.9.1'),
  24. ('PROJ', '5.0.0'),
  25. ('netCDF', '4.6.1'),
  26. ('GDAL', '2.2.3', versionsuffix),
  27. ('GTK+', '3.24.7', versionsuffix),
  28. ('matplotlib', '3.0.3', versionsuffix),
  29. ('PyGObject', '3.28.3', versionsuffix),
  30. ('ecCodes', '2.8.2'),
  31. ('libmo_unpack', '3.1.2'),
  32. ('numba', '0.43.0', versionsuffix),
  33. ]
  34. exts_defaultclass = 'PythonPackage'
  35. exts_default_options = {
  36. 'source_tmpl': '%(name)s-%(version)s.tar.gz',
  37. }
  38. exts_classmap = {
  39. 'ncdf4': 'RPackage',
  40. 'gdtools': 'RPackage',
  41. 'leaflet': 'RPackage',
  42. 'satellite': 'RPackage',
  43. 'sf': 'RPackage',
  44. 'svglite': 'RPackage',
  45. 'mapview': 'RPackage',
  46. 'MuMIn': 'RPackage'
  47. }
  48. exts_list = [
  49. # Python deps, order is important!
  50. ('pip', '19.0.3', {
  51. 'modulename': 'pip',
  52. 'source_tmpl': '%(version)s.tar.gz',
  53. 'source_urls': ['https://github.com/pypa/pip/archive/'],
  54. }),
  55. ('olefile', '0.45.1', {
  56. 'source_tmpl': '%(name)s-%(version)s.zip',
  57. 'source_urls': ['https://pypi.python.org/packages/source/o/olefile/'],
  58. 'checksums': ['2b6575f5290de8ab1086f8c5490591f7e0885af682c7c1793bdaf6e64078d385'],
  59. }),
  60. ('Pillow', '4.3.0', {
  61. 'modulename': 'PIL',
  62. 'source_urls': ['https://pypi.python.org/packages/source/p/Pillow/'],
  63. 'checksums': ['a97c715d44efd5b4aa8d739b8fad88b93ed79f1b33fc2822d5802043f3b1b527'],
  64. }),
  65. ('pyproj', '1.9.5.1', {
  66. 'source_urls': ['https://pypi.python.org/packages/source/p/pyproj/'],
  67. 'checksums': ['53fa54c8fa8a1dfcd6af4bf09ce1aae5d4d949da63b90570ac5ec849efaf3ea8'],
  68. }),
  69. ('pyshp', '2.1.0', {
  70. 'modulename': 'shapefile',
  71. 'source_urls': ['https://pypi.python.org/packages/source/p/pyshp/'],
  72. }),
  73. ('chardet', '3.0.4', {
  74. 'source_urls': ['https://pypi.python.org/packages/source/c/chardet/'],
  75. 'checksums': ['84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae'],
  76. }),
  77. ('urllib3', '1.24.1', {
  78. 'source_urls': ['https://pypi.python.org/packages/source/u/urllib3/'],
  79. }),
  80. ('certifi', '2019.3.9', {
  81. 'source_urls': ['https://pypi.python.org/packages/source/c/certifi/'],
  82. }),
  83. ('requests', '2.21.0', {
  84. 'source_urls': ['https://pypi.python.org/packages/source/r/requests/'],
  85. }),
  86. ('OWSLib', '0.17.1', {
  87. 'source_urls': ['https://pypi.python.org/packages/source/o/OWSLib/'],
  88. }),
  89. ('netCDF4', '1.3.1', {
  90. 'modulename': 'netCDF4',
  91. 'source_urls': ['https://pypi.python.org/packages/source/n/netCDF4/'],
  92. 'checksums': ['570ea59992aa6d98a9b672c71161d11ba5683f787da53446086077470a869957'],
  93. }),
  94. ('geoval', '0.1.5', {
  95. 'source_urls': ['https://pypi.python.org/packages/source/g/geoval/'],
  96. 'checksums': ['7da4a1879f78bb7aac2d41b5c1ee360ff74087bf857c81c532deb8cc31feb36e'],
  97. }),
  98. ('cdo', '1.3.6', {
  99. 'source_urls': ['https://pypi.python.org/packages/source/c/cdo/'],
  100. 'checksums': ['b167efbbac7d0a6cbf74f5d211255705c73245f7c2590b6d9eb634347d8b2c1f'],
  101. }),
  102. ('Shapely', '1.6.4.post2', {
  103. 'source_urls': ['https://pypi.python.org/packages/source/s/Shapely/'],
  104. }),
  105. ('Cartopy', '0.17.0', {
  106. 'source_urls': ['https://pypi.python.org/packages/source/c/Cartopy/'],
  107. }),
  108. ('dask', '1.1.4', {
  109. 'source_urls': ['https://pypi.python.org/packages/source/d/dask/'],
  110. }),
  111. ('astropy', '3.1.2', {
  112. 'modulename': 'astropy',
  113. 'source_urls': ['https://pypi.python.org/packages/source/a/astropy/'],
  114. }),
  115. ('oktopus', '0.1.2', {
  116. 'modulename': 'oktopus',
  117. 'source_urls': ['https://pypi.python.org/packages/source/o/oktopus/'],
  118. }),
  119. ('bs4', '0.0.1', {
  120. 'modulename': 'bs4',
  121. 'source_urls': ['https://pypi.python.org/packages/source/b/bs4/'],
  122. }),
  123. ('tqdm', '4.31.1', {
  124. 'modulename': 'tqdm',
  125. 'source_urls': ['https://pypi.python.org/packages/source/t/tqdm/'],
  126. }),
  127. ('PyKE', '3.1.0', {
  128. 'modulename': 'pyke',
  129. 'source_tmpl': 'v%(version)s.tar.gz',
  130. 'source_urls': ['https://github.com/KeplerGO/pyke/archive/'],
  131. }),
  132. ('cf-units', '2.1.1', {
  133. 'source_urls': ['https://pypi.python.org/packages/source/c/cf_units/'],
  134. }),
  135. ('cftime', '1.0.3.4rel', {
  136. 'modulename': 'cftime',
  137. 'source_tmpl': 'v%(version)s.tar.gz',
  138. 'source_urls': ['https://github.com/Unidata/cftime/archive/'],
  139. }),
  140. ('pyugrid', '0.3.1', {
  141. 'source_urls': ['https://pypi.python.org/packages/source/p/pyugrid/'],
  142. 'checksums': ['eddadc1e88c0e801f780b1e6f636fbfc00e3d14cdab82b43300fde0918310053'],
  143. }),
  144. ('mo_pack', '0.2.0', {
  145. 'source_tmpl': 'v%(version)s.tar.gz',
  146. 'source_urls': ['https://github.com/SciTools/mo_pack/archive/'],
  147. 'checksums': ['4aa70e1f846b666670843bc2514435dedf7393203e88abaf74d48f8f2717a726'],
  148. }),
  149. ('cycler', '0.10.0', {
  150. 'source_urls': ['https://pypi.python.org/packages/source/c/cycler/'],
  151. 'checksums': ['cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8'],
  152. }),
  153. ('singledispatch', '3.4.0.3', {
  154. 'source_urls': ['https://pypi.python.org/packages/source/s/singledispatch/'],
  155. 'checksums': ['5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c'],
  156. }),
  157. ('backports_abc', '0.5', {
  158. 'source_urls': ['https://pypi.python.org/packages/source/b/backports_abc/'],
  159. 'checksums': ['033be54514a03e255df75c5aee8f9e672f663f93abb723444caec8fe43437bde'],
  160. }),
  161. ('tornado', '5.1.1', {
  162. 'source_urls': ['https://pypi.python.org/packages/source/t/tornado/'],
  163. }),
  164. ('toolz', '0.9.0', {
  165. 'source_urls': ['https://pypi.python.org/packages/source/t/toolz/'],
  166. 'checksums': ['929f0a7ea7f61c178bd951bdae93920515d3fbdbafc8e6caf82d752b9b3b31c9'],
  167. }),
  168. ('patsy', '0.5.0', {
  169. 'source_urls': ['https://pypi.python.org/packages/source/p/patsy/'],
  170. 'checksums': ['e05f38d5c38c8d216f0cc2b765b1069b433c92d628b954fb2fee68d13e42883b'],
  171. }),
  172. ('statsmodels', '0.9.0', {
  173. 'source_urls': ['https://pypi.python.org/packages/source/s/statsmodels/'],
  174. 'checksums': ['6461f93a842c649922c2c9a9bc9d9c4834110b89de8c4af196a791ab8f42ba3b'],
  175. }),
  176. ('nc-time-axis', '1.1.0', {
  177. 'modulename': 'nc_time_axis',
  178. 'source_urls': ['https://pypi.python.org/packages/source/n/nc-time-axis/'],
  179. 'checksums': ['ea9d4f7f9e9189c96f7d320235ac6c4be7f63dc5aa256b3ee5d5cca5845e6e26'],
  180. }),
  181. ('yamale', '1.10.0', {
  182. 'modulename': 'yamale',
  183. 'source_urls': ['https://pypi.python.org/packages/source/y/yamale/'],
  184. }),
  185. ('stratify', '0.2', {
  186. 'modulename': 'stratify',
  187. 'source_tmpl': 'master.zip',
  188. 'source_urls': ['https://github.com/SciTools-incubator/python-stratify/archive/'],
  189. }),
  190. ('psutil', '5.6.1', {
  191. 'modulename': 'psutil',
  192. 'source_urls': ['https://pypi.python.org/packages/source/p/psutil/'],
  193. 'checksums': ['fa0a570e0a30b9dd618bffbece590ae15726b47f9f1eaf7518dfb35f4d7dcd21'],
  194. }),
  195. ('bcrypt', '3.1.6', {
  196. 'source_urls': ['https://pypi.python.org/packages/source/b/bcrypt/'],
  197. }),
  198. ('cffi', '1.12.2', {
  199. 'source_urls': ['https://pypi.python.org/packages/source/c/cffi/'],
  200. }),
  201. ('cryptography', '2.6.1', {
  202. 'source_urls': ['https://pypi.python.org/packages/source/c/cryptography/'],
  203. }),
  204. ('Cython', '0.29.6', {
  205. 'source_urls': ['https://pypi.python.org/packages/source/c/Cython/'],
  206. }),
  207. ('decorator', '4.4.0', {
  208. 'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'],
  209. }),
  210. ('mpi4py', '3.0.1', {
  211. 'source_urls': ['https://pypi.python.org/packages/source/m/mpi4py/'],
  212. }),
  213. ('numpy', '1.16.2', {
  214. 'modulename': 'numpy',
  215. 'source_tmpl': 'v%(version)s.tar.gz',
  216. 'source_urls': ['https://github.com/numpy/numpy/archive/'],
  217. }),
  218. ('pandas', '0.24.2', {
  219. 'source_urls': ['https://pypi.python.org/packages/source/p/pandas/'],
  220. }),
  221. ('pbr', '5.1.3', {
  222. 'source_urls': ['https://pypi.python.org/packages/source/p/pbr/'],
  223. }),
  224. ('pycparser', '2.19', {
  225. 'source_urls': ['https://pypi.python.org/packages/source/p/pycparser/'],
  226. }),
  227. ('scipy', '1.2.1', {
  228. 'source_urls': ['https://pypi.python.org/packages/source/s/scipy/'],
  229. }),
  230. ('six', '1.12.0', {
  231. 'source_urls': ['https://pypi.python.org/packages/source/s/six/'],
  232. }),
  233. ('virtualenv', '16.4.3', {
  234. 'source_urls': ['https://pypi.python.org/packages/source/x/virtualenv/'],
  235. }),
  236. ('xlrd', '1.2.0', {
  237. 'source_urls': ['https://pypi.python.org/packages/source/x/xlrd/'],
  238. }),
  239. ('affine', '2.2.2', {
  240. 'source_urls': ['https://pypi.python.org/packages/source/a/affine/'],
  241. }),
  242. ('atomicwrites', '1.3.0', {
  243. 'source_urls': ['https://pypi.python.org/packages/source/a/atomicwrites/'],
  244. }),
  245. ('boto3', '1.9.116', {
  246. 'source_urls': ['https://pypi.python.org/packages/source/b/boto3/'],
  247. }),
  248. ('botocore', '1.12.116', {
  249. 'source_urls': ['https://pypi.python.org/packages/source/b/botocore/'],
  250. }),
  251. ('bottleneck', '1.2.1', {
  252. 'modulename': 'bottleneck',
  253. 'source_tmpl': 'v%(version)s.tar.gz',
  254. 'source_urls': ['https://github.com/kwgoodman/bottleneck/archive/'],
  255. }),
  256. ('click', '7.0', {
  257. 'modulename': 'click',
  258. 'source_tmpl': '%(version)s.tar.gz',
  259. 'source_urls': ['https://github.com/pallets/click/archive/'],
  260. }),
  261. ('click-plugins', '1.0.4', {
  262. 'source_urls': ['https://pypi.python.org/packages/source/c/click-plugins/'],
  263. }),
  264. ('cligj', '0.5.0', {
  265. 'source_urls': ['https://pypi.python.org/packages/source/c/cligj/'],
  266. }),
  267. ('cloudpickle', '0.8.0', {
  268. 'source_urls': ['https://pypi.python.org/packages/source/c/cloudpickle/'],
  269. }),
  270. ('configobj', '5.0.6', {
  271. 'source_urls': ['https://pypi.python.org/packages/source/c/configobj/'],
  272. }),
  273. ('docutils', '0.14', {
  274. 'source_urls': ['https://pypi.python.org/packages/source/d/docutils/'],
  275. }),
  276. ('fiona', '1.8.6', {
  277. 'modulename': 'fiona',
  278. 'source_tmpl': '%(version)s.tar.gz',
  279. 'source_urls': ['https://github.com/Toblerity/Fiona/archive/'],
  280. }),
  281. ('geopandas', '0.4.1', {
  282. 'source_urls': ['https://pypi.python.org/packages/source/g/geopandas/'],
  283. }),
  284. ('jmespath', '0.9.4', {
  285. 'source_urls': ['https://pypi.python.org/packages/source/j/jmespath/'],
  286. }),
  287. ('more-itertools', '5.0.0', {
  288. 'source_urls': ['https://pypi.python.org/packages/source/m/more-itertools/'],
  289. }),
  290. ('motionless', '1.3.2', {
  291. 'source_urls': ['https://pypi.python.org/packages/source/m/motionless/'],
  292. }),
  293. ('munch', '2.3.2', {
  294. 'source_urls': ['https://pypi.python.org/packages/source/m/munch/'],
  295. }),
  296. ('networkx', '2.2', {
  297. 'modulename': 'networkx',
  298. 'source_tmpl': 'networkx-%(version)s.tar.gz',
  299. 'source_urls': ['https://github.com/networkx/networkx/archive/'],
  300. }),
  301. ('pathlib2', '2.3.3', {
  302. 'source_urls': ['https://pypi.python.org/packages/source/p/pathlib2/'],
  303. }),
  304. ('pluggy', '0.9.0', {
  305. 'source_urls': ['https://pypi.python.org/packages/source/p/pluggy/'],
  306. }),
  307. ('py', '1.8.0', {
  308. 'source_urls': ['https://pypi.python.org/packages/source/p/py/'],
  309. }),
  310. ('pytest', '4.3.1', {
  311. 'source_urls': ['https://pypi.python.org/packages/source/p/pytest/'],
  312. }),
  313. ('python-utils', '2.3.0', {
  314. 'source_urls': ['https://pypi.python.org/packages/source/p/python-utils/'],
  315. }),
  316. ('rasterio', '1.0.21', {
  317. 'source_urls': ['https://pypi.python.org/packages/source/r/rasterio/'],
  318. }),
  319. ('s3transfer', '0.2.0', {
  320. 'source_urls': ['https://pypi.python.org/packages/source/s/s3transfer/'],
  321. }),
  322. ('scandir', '1.10.0', {
  323. 'source_urls': ['https://pypi.python.org/packages/source/s/scandir/'],
  324. }),
  325. ('snuggs', '1.4.3', {
  326. 'source_urls': ['https://pypi.python.org/packages/source/s/snuggs/'],
  327. }),
  328. ('xarray', '0.11.3', {
  329. 'source_urls': ['https://pypi.python.org/packages/source/x/xarray/'],
  330. }),
  331. ('py-expression-eval', '0.3.6', {
  332. 'modulename': 'py_expression_eval',
  333. 'source_tmpl': 'v%(version)s.tar.gz',
  334. 'source_urls': ['https://github.com/Axiacore/py-expression-eval/archive/'],
  335. }),
  336. ('PyWavelets', '1.0.2', {
  337. 'modulename': 'pywt',
  338. 'source_urls': ['https://pypi.python.org/packages/source/p/PyWavelets/'],
  339. }),
  340. ('attrs', '19.1.0', {
  341. 'modulename': 'attr',
  342. 'source_urls': ['https://pypi.python.org/packages/source/a/attrs/'],
  343. }),
  344. ('progressbar2', '3.39.3', {
  345. 'modulename': 'progressbar',
  346. 'source_urls': ['https://pypi.python.org/packages/source/p/progressbar2/'],
  347. }),
  348. ('scikit-image', '0.14.2', {
  349. 'modulename': 'skimage',
  350. 'source_urls': ['https://pypi.python.org/packages/source/s/scikit-image/'],
  351. }),
  352. ('PyNaCl', '1.3.0', {
  353. 'modulename': 'nacl',
  354. 'source_urls': ['https://pypi.python.org/packages/source/p/PyNaCl/'],
  355. }),
  356. ('descartes', '1.1.0', {
  357. 'modulename': 'descartes',
  358. 'source_urls': ['https://pypi.python.org/packages/source/d/descartes/'],
  359. 'checksums': ['135a502146af5ed6ff359975e2ebc5fa4b71b5432c355c2cafdc6dea1337035b'],
  360. }),
  361. ('graphviz', '0.10.1', {
  362. 'modulename': 'graphviz',
  363. 'source_tmpl': '%(version)s.tar.gz',
  364. 'source_urls': ['https://github.com/xflr6/graphviz/archive/'],
  365. }),
  366. ('basemap', '1.2.0rel', {
  367. 'modulename': 'mpl_toolkits.basemap',
  368. 'source_tmpl': 'v%(version)s.tar.gz',
  369. 'source_urls': ['https://github.com/matplotlib/basemap/archive'],
  370. }),
  371. ('salem', '0.2.4', {
  372. 'modulename': 'salem',
  373. 'source_urls': ['https://pypi.python.org/packages/source/s/salem/'],
  374. 'checksums': ['f29594c31124b9f1198ba3361850d57e180e3ea228bebe08080760195b96558c'],
  375. }),
  376. ################################
  377. # R extension
  378. ('ncdf4', '1.16', {
  379. 'source_tmpl': '%(name)s_%(version)s.tar.gz',
  380. 'source_urls': [
  381. 'http://cran.r-project.org/src/contrib/Archive/ncdf4',
  382. 'http://cran.r-project.org/src/contrib/',
  383. 'http://cran.freestatistics.org/src/contrib',
  384. ],
  385. 'checksums': ['edd5731a805bbece3a8f6132c87c356deafc272351e1dd07256ca00574949253'],
  386. }),
  387. ('gdtools', '0.1.7', {
  388. 'source_tmpl': '%(name)s_%(version)s.tar.gz',
  389. 'source_urls': [
  390. 'http://cran.r-project.org/src/contrib/Archive/gdtools',
  391. 'http://cran.r-project.org/src/contrib/',
  392. 'http://cran.freestatistics.org/src/contrib',
  393. ],
  394. }),
  395. ('leaflet', '2.0.2', {
  396. 'source_tmpl': '%(name)s_%(version)s.tar.gz',
  397. 'source_urls': [
  398. 'http://cran.r-project.org/src/contrib/Archive/leaflet',
  399. 'http://cran.r-project.org/src/contrib/',
  400. 'http://cran.freestatistics.org/src/contrib',
  401. ],
  402. }),
  403. ('satellite', '1.0.1', {
  404. 'source_tmpl': '%(name)s_%(version)s.tar.gz',
  405. 'source_urls': [
  406. 'http://cran.r-project.org/src/contrib/Archive/satellite',
  407. 'http://cran.r-project.org/src/contrib/',
  408. 'http://cran.freestatistics.org/src/contrib',
  409. ],
  410. }),
  411. ('sf', '0.7-3', {
  412. 'source_tmpl': '%(name)s_%(version)s.tar.gz',
  413. 'source_urls': [
  414. 'http://cran.r-project.org/src/contrib/Archive/sf',
  415. 'http://cran.r-project.org/src/contrib/',
  416. 'http://cran.freestatistics.org/src/contrib',
  417. ],
  418. }),
  419. ('svglite', '1.2.1', {
  420. 'source_tmpl': '%(name)s_%(version)s.tar.gz',
  421. 'source_urls': [
  422. 'http://cran.r-project.org/src/contrib/Archive/svglite',
  423. 'http://cran.r-project.org/src/contrib/',
  424. 'http://cran.freestatistics.org/src/contrib',
  425. ],
  426. }),
  427. ('mapview', '2.6.3', {
  428. 'source_tmpl': '%(name)s_%(version)s.tar.gz',
  429. 'source_urls': [
  430. 'http://cran.r-project.org/src/contrib/Archive/mapview',
  431. 'http://cran.r-project.org/src/contrib/',
  432. 'http://cran.freestatistics.org/src/contrib',
  433. ],
  434. }),
  435. ('MuMIn', '1.43.6', {
  436. 'source_tmpl': '%(name)s_%(version)s.tar.gz',
  437. 'source_urls': [
  438. 'http://cran.r-project.org/src/contrib/Archive/MuMIn',
  439. 'http://cran.r-project.org/src/contrib/',
  440. 'http://cran.freestatistics.org/src/contrib',
  441. ],
  442. }),
  443. ]
  444. sanity_check_paths = {
  445. 'files': ['sf/libs/sf.so'],
  446. 'dirs': [],
  447. }
  448. postinstallcmds = [
  449. "cd %(installdir)s/bin && " +
  450. 'chmod 755 pip'
  451. ]
  452. modextrapaths = {
  453. 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
  454. 'PYTHONUSERBASE': '',
  455. 'R_LIBS': '',
  456. }
  457. moduleclass = 'numlib'