NumPy 1.14 - numpy.distutils.misc_util.Configuration()

पैकेजिंग (numpy.distutils)




numpy

पैकेजिंग (numpy.distutils)

NumPy, फोर्ट-संकलित पुस्तकालयों का उपयोग करने वाले उप-पैकेज, ऑटो-जनरेट कोड और एक्सटेंशन मॉड्यूल को बनाने और स्थापित करने में आसान बनाने के लिए संवर्धित डिस्टुटिल कार्यक्षमता प्रदान करता है। NumPy numpy.distutils.core सुविधाओं का उपयोग करने के लिए, numpy.distutils.core से setup कमांड का उपयोग करें। numpy.distutils.misc_util में एक उपयोगी Configuration वर्ग भी प्रदान किया numpy.distutils.misc_util जो कि सेटअप फ़ंक्शन (todict () विधि से प्राप्त डिक्शनरी पास करके) को सेटअप फ़ंक्शन में पास करने के लिए कीवर्ड तर्कों का निर्माण करना आसान बना सकता है। अधिक जानकारी NumPy Distutils उपयोगकर्ता गाइड में <site-packages>/numpy/doc/DISTUTILS.txt

Numpy.distutils में मॉड्यूल

misc_util

get_numpy_include_dirs ()
dict_append (d, ** dict_append )
appendpath (उपसर्ग, पथ)
allpath (नाम) OS के पथ विभाजक का उपयोग करके / -separated pathname को एक में परिवर्तित करें।
dot_join (* args)
generate_config_py (लक्ष्य) पैकेज बनाने के दौरान उपयोग की जाने वाली system_info जानकारी वाली config.py फ़ाइल बनाएँ।
get_cmd (cmdname [, _cache])
terminal_has_colors ()
red_text (s)
green_text (s)
yellow_text
blue_text (s)
cyan_text (s)
cyg2win32 (पथ)
all_strings (lst) सही पर लौटें यदि lst में सभी आइटम स्ट्रिंग ऑब्जेक्ट हैं।
has_f_sources (स्रोत) यदि स्रोत फ़ोर्ट्रान फ़ाइलें हैं तो सही पर लौटें
has_cxx_sources (स्रोत) यदि C ++ फ़ाइलों में स्रोत हैं, तो सही पर लौटें
filter_sources स्रोत (स्रोत) क्रमशः सी, सी ++, फोरट्रान, और फोरट्रान 90 मॉड्यूल स्रोतों से फ़ाइल नाम की चार सूचियां लौटाएं।
get_dependencies (स्रोत)
is_local_src_dir (निर्देशिका) यदि निर्देशिका स्थानीय निर्देशिका है तो सही लौटें।
get_ext_source_files (ext)
get_script_files (स्क्रिप्ट)
class numpy.distutils.misc_util.Configuration(package_name=None, parent_name=None, top_path=None, package_path=None, **attrs) [source]

दिए गए पैकेज के नाम के लिए एक विन्यास उदाहरण का निर्माण करें। अगर parent_name कोई नहीं है, तो पैकेज को parent_name पैकेज के उप-पैकेज के रूप में बनाएँ । यदि top_path और package_path कोई नहीं हैं, तो उन्हें उस फ़ाइल के पथ के बराबर मान लिया जाता है जिसे इस उदाहरण में बनाया गया था। संख्यात्मक वितरण में setup.py फाइलें Configuration उदाहरण का उपयोग कैसे करें के अच्छे उदाहरण हैं।

todict() [source]

डिस्टुटिल्स सेटअप फ़ंक्शन के कीवर्ड तर्कों के साथ संगत एक शब्दकोश लौटाएं।

उदाहरण

>>> setup(**config.todict())                           
get_distribution() [source]

स्वयं के लिए डिस्टुटिल वितरण वस्तु लौटाएं।

get_subpackage(subpackage_name, subpackage_path=None, parent_name=None, caller_level=1) [source]

उप-पैकेज कॉन्फ़िगरेशन की सूची लौटाएं।

पैरामीटर:

subpackage_name : str या कोई नहीं

कॉन्फ़िगरेशन प्राप्त करने के लिए उप-पैकेज का नाम। सबपैकेज_name में '*' को वाइल्डकार्ड के रूप में संभाला जाता है।

subpackage_path : str

यदि कोई नहीं है, तो पथ को स्थानीय पथ माना जाता है और साथ ही उप-पैकेज_नाम। यदि उप-पैकेज_पैथ में एक सेटअपफ्रीडम फ़ाइल नहीं मिली है, तो एक डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग किया जाता है।

parent_name : str

माता पिता का नाम।

add_subpackage(subpackage_name, subpackage_path=None, standalone=False) [source]

वर्तमान कॉन्फ़िगरेशन आवृत्ति में एक उप-पैकेज जोड़ें।

यह एक उप-संकुल को संकुल में जोड़ने के लिए एक setup.py स्क्रिप्ट में उपयोगी है।

पैरामीटर:

subpackage_name : str

उपपैकेज का नाम

subpackage_path : str

यदि दिया गया है, तो सबपैकेज पथ जैसे कि सबपैकेज सबपैकेज_पैथ / सबपैकेज_नाम में है। यदि कोई नहीं है, तो सबपैकेज को स्थानीय पथ / उपपंजी_नाम में स्थित माना जाता है।

स्टैंडअलोन : बूल

add_data_files(*files) [source]

Data_files कॉन्फ़िगरेशन के लिए डेटा फ़ाइलें जोड़ें।

पैरामीटर:

फ़ाइलें : अनुक्रम

तर्क (याँ) हो सकते हैं

  • 2-क्रम (<डेटादिर उपसर्ग>, <डेटा फ़ाइल के लिए पथ)
  • डेटा फ़ाइलों के लिए पथ जहां अजगर डेटादिर उपसर्ग डिफॉल्ट टू पैकेज डायर।

टिप्पणियाँ

फ़ाइलों के अनुक्रम के प्रत्येक तत्व का रूप बहुत लचीला है जिससे पैकेज से फ़ाइलों को प्राप्त करने के लिए और जहां उन्हें अंततः सिस्टम पर स्थापित किया जाना चाहिए। सबसे बुनियादी उपयोग एक साधारण फ़ाइल नाम होने के लिए फ़ाइलों के तर्क अनुक्रम के एक तत्व के लिए है। यह स्थानीय पथ से फ़ाइल को self.name पैकेज (पैकेज पथ) की स्थापना पथ पर स्थापित करने का कारण होगा। फ़ाइल तर्क एक सापेक्ष पथ भी हो सकता है जिस स्थिति में संपूर्ण सापेक्ष पथ को पैकेज निर्देशिका में स्थापित किया जाएगा। अंत में, फ़ाइल एक निरपेक्ष पथ नाम हो सकती है जिस स्थिति में फ़ाइल पूर्ण पथ के नाम पर मिल जाएगी लेकिन पैकेज पथ पर स्थापित हो जाएगी।

इस मूल व्यवहार को फ़ाइल तर्क के रूप में 2-ट्यूपल पास करके संवर्धित किया जा सकता है। टपल के पहले तत्व को सापेक्ष पथ (पैकेज इंस्टाल डायरेक्टरी के तहत) निर्दिष्ट करना चाहिए जहां फाइलों का शेष अनुक्रम स्थापित होना चाहिए (इसका स्रोत वितरण में फाइल-नामों से कोई लेना-देना नहीं है)। टपल का दूसरा तत्व फ़ाइलों का अनुक्रम है जिसे स्थापित किया जाना चाहिए। इस क्रम की फाइल फिल्नाम, सापेक्षिक पथ या निरपेक्ष पथ हो सकती है। निरपेक्ष पथों के लिए फ़ाइल को शीर्ष-स्तरीय पैकेज स्थापना निर्देशिका (पहले तर्क की परवाह किए बिना) में स्थापित किया जाएगा। टुप्ले के पहले तत्व के रूप में दिए गए पथ नाम के तहत पैकेज इंस्टाल डायरेक्टरी में फाइलनाम और रिश्तेदार पथ नाम स्थापित किए जाएंगे।

स्थापना पथ के नियम:

  1. file.txt -> (!, file.txt) -> माता-पिता / file.txt
  2. foo / file.txt -> (foo, foo / file.txt) -> माता-पिता / foo / file.txt
  3. /foo/bar/file.txt -> (?, /foo/bar/file.txt) -> माता-पिता / file.xt
  4. * .txt -> माता-पिता / axt, माता-पिता / b.txt
  5. foo / * .txt -> माता-पिता / foo / axt, माता-पिता / foo / b.txt
  6. / .txt -> ( ,, * / .txt) -> माता-पिता / c / axt, माता-पिता / d / b.txt
  7. (sun, file.txt) -> पैरेंट / सन / file.txt
  8. (sun, bar / file.txt) -> पैरेंट / सन / file.txt
  9. (sun, /foo/bar/file.txt) -> माता-पिता / सूरज / file.txt
  10. (sun, * .txt) -> माता-पिता / सूर्य / axt, माता-पिता / सूरज / b.txt
  11. (sun, bar / * .txt) -> माता-पिता / sun / axt, माता-पिता / sun / b.txt
  12. (sun / , * / .txt) -> माता-पिता / सूर्य / c / axt, माता-पिता / d / b.txt

एक अतिरिक्त विशेषता यह है कि डेटा-फ़ाइल का पथ वास्तव में एक फ़ंक्शन हो सकता है जो कोई तर्क नहीं लेता है और डेटा-फ़ाइलों के लिए वास्तविक पथ वापस करता है। यह उपयोगी है जब पैकेज बनाते समय डेटा फाइलें उत्पन्न होती हैं।

उदाहरण

पैकेज के साथ शामिल होने के लिए data_files की सूची में फाइलें जोड़ें।

>>> self.add_data_files('foo.dat',
...     ('fun', ['gun.dat', 'nun/pun.dat', '/tmp/sun.dat']),
...     'bar/cat.dat',
...     '/full/path/to/can.dat')                   

इन डेटा फ़ाइलों को इनस्टॉल करेंगे:

<package install directory>/
 foo.dat
 fun/
   gun.dat
   nun/
     pun.dat
 sun.dat
 bar/
   car.dat
 can.dat

जहाँ <पैकेज इंस्टॉल डायरेक्टरी> '/ /rr/lib/python2.4/site-packages/mypackage' ('C: Python2.4 Lib site-package apackage') या 'जैसे पैकेज (या सब-पैकेज) डायरेक्टरी है /usr/lib/python2.4/site- package / mypackage / mysubpackage '(' C: Python2.4 Lib site-package mypackage mysubpackage ')।

add_data_dir(data_path) [source]

Recursively data_path को data_files सूची में फ़ाइलों को जोड़ दें।

डेटा स्थापित करने (और वितरित) के लिए डेटा_path की सूची में पुन: डेटा जोड़ दें। Data_path या तो एक रिश्तेदार पथ-नाम, या एक निरपेक्ष पथ-नाम या 2-ट्यूपल हो सकता है जहां पहला तर्क दिखाता है कि इंस्टॉल डायरेक्टरी में डेटा डायरेक्टरी को कहाँ स्थापित किया जाना चाहिए।

पैरामीटर:

data_path : seq या str

तर्क या तो हो सकता है

  • 2-क्रम (<डेटादि प्रत्यय>, डेटा निर्देशिका का पथ>)
  • डेटा निर्देशिका का पथ जहां अजगर डेटादिर प्रत्यय डिफॉल्ट टू पैकेज डीर है।

टिप्पणियाँ

स्थापना पथ के नियम:

foo/bar -> (foo/bar, foo/bar) -> parent/foo/bar
(gun, foo/bar) -> parent/gun
foo/* -> (foo/a, foo/a), (foo/b, foo/b) -> parent/foo/a, parent/foo/b
(gun, foo/*) -> (gun, foo/a), (gun, foo/b) -> gun
(gun/*, foo/*) -> parent/gun/a, parent/gun/b
/foo/bar -> (bar, /foo/bar) -> parent/bar
(gun, /foo/bar) -> parent/gun
(fun/*/gun/*, sun/foo/bar) -> parent/fun/foo/gun/bar

उदाहरण

उदाहरण के लिए मान लीजिए कि स्रोत निर्देशिका में मज़ा / foo.dat और मज़ा / बार / car.dat शामिल हैं:

>>> self.add_data_dir('fun')                       
>>> self.add_data_dir(('sun', 'fun'))              
>>> self.add_data_dir(('gun', '/full/path/to/fun'))

स्थानों पर डेटा-फ़ाइलें स्थापित करेगा:

<package install directory>/
  fun/
    foo.dat
    bar/
      car.dat
  sun/
    foo.dat
    bar/
      car.dat
  gun/
    foo.dat
    car.dat
add_include_dirs(*paths) [source]

कॉन्फ़िगरेशन में पथ जोड़ें निर्देशिका शामिल हैं।

शामिलों की सूची की शुरुआत में पथों के दिए गए अनुक्रम को जोड़ें। यह सूची वर्तमान पैकेज के सभी एक्सटेंशन मॉड्यूल को दिखाई देगी।

add_headers(*files) [source]

कॉन्फ़िगरेशन में इंस्टॉल करने योग्य हेडर जोड़ें।

हेडर सूची की शुरुआत में फ़ाइलों के दिए गए अनुक्रम को जोड़ें। डिफ़ॉल्ट रूप से, हेडर <python- शामिल> / <self.name.replace (''; ',' / ')> / निर्देशिका के तहत स्थापित किए जाएंगे। यदि फ़ाइलों का एक आइटम टपल है, तो इसका पहला तर्क <python- शामिल - पथ के सापेक्ष वास्तविक स्थापना स्थान को निर्दिष्ट करता है।

पैरामीटर:

फ़ाइलें : str या seq

तर्क (याँ) हो सकते हैं:

  • 2-क्रम (<शामिल प्रत्यय>, हेडर फ़ाइल के लिए पथ)
  • पथ (ओं) को हेडर फ़ाइल (ओं) के लिए जहाँ अजगर शामिल प्रत्यय पैकेज नाम के लिए डिफ़ॉल्ट होगा।
add_extension(name, sources, **kw) [source]

कॉन्फ़िगरेशन में एक्सटेंशन जोड़ें।

बनाएँ और ext_modules सूची में एक्सटेंशन का उदाहरण जोड़ें। यह विधि एक्सटेंशन कंस्ट्रक्टर पर दिए गए निम्न वैकल्पिक कीवर्ड तर्क भी लेती है।

पैरामीटर:

नाम : str

विस्तार का नाम

स्रोत : seq

सूत्रों की सूची स्रोतों की सूची में फ़ंक्शंस हो सकते हैं (स्रोत जनरेटर कहा जाता है) जो इनपुट के रूप में एक एक्सटेंशन इंस्टेंस और एक बिल्ड डायरेक्टरी को लेना चाहिए और स्रोत फ़ाइल या स्रोत फ़ाइलों की सूची या कोई भी नहीं लौटा सकता है। यदि कोई वापस नहीं किया जाता है तो कोई स्रोत उत्पन्न नहीं होता है। यदि एक्सटेंशन स्रोत में सभी स्रोत जनरेटर को संसाधित करने के बाद कोई स्रोत नहीं है, तो कोई एक्सटेंशन मॉड्यूल नहीं बनाया गया है।

शामिल हैं:

define_macros:

undef_macros:

Library_dirs:

पुस्तकालय:

runtime_library_dirs:

extra_objects:

extra_compile_args:

अतिरिक्त_लिंक_कार:

extra_f77_compile_args:

extra_f90_compile_args:

Export_symbols:

swig_opts:

निर्भर करता है:

निर्भर सूची में फ़ाइलों या निर्देशिकाओं के लिए पथ होते हैं जो एक्सटेंशन मॉड्यूल के स्रोत पर निर्भर करते हैं। यदि निर्भर सूची में कोई भी पथ विस्तार मॉड्यूल की तुलना में नया है, तो मॉड्यूल को फिर से बनाया जाएगा।

भाषा:

f2py_options:

मॉड्यूल_डायर:

extra_info : तानाशाही या सूची

कीवर्ड के लिए तानाशाहों की तानाशाही या सूची।

टिप्पणियाँ

Self.paths (…) विधि उन सभी सूचियों पर लागू होती है जिनमें पथ हो सकते हैं।

add_library(name, sources, **build_info) [source]

कॉन्फ़िगरेशन में लाइब्रेरी जोड़ें।

पैरामीटर:

नाम : str

विस्तार का नाम।

स्रोत : अनुक्रम

सूत्रों की सूची स्रोतों की सूची में फ़ंक्शंस हो सकते हैं (स्रोत जनरेटर कहा जाता है) जो इनपुट के रूप में एक एक्सटेंशन इंस्टेंस और एक बिल्ड डायरेक्टरी को लेना चाहिए और स्रोत फ़ाइल या स्रोत फ़ाइलों की सूची या कोई भी नहीं लौटा सकता है। यदि कोई वापस नहीं किया जाता है तो कोई स्रोत उत्पन्न नहीं होता है। यदि एक्सटेंशन स्रोत में सभी स्रोत जनरेटर को संसाधित करने के बाद कोई स्रोत नहीं है, तो कोई एक्सटेंशन मॉड्यूल नहीं बनाया गया है।

build_info : तानाशाह , वैकल्पिक

निम्नलिखित कुंजियों की अनुमति है:

  • निर्भर करता है
  • मैक्रो
  • include_dirs
  • extra_compiler_args
  • extra_f77_compile_args
  • extra_f90_compile_args
  • f2py_options
  • भाषा
add_scripts(*files) [source]

कॉन्फ़िगरेशन में स्क्रिप्ट जोड़ें।

स्क्रिप्ट सूची की शुरुआत में फ़ाइलों का अनुक्रम जोड़ें। लिपियों को <उपसर्ग> / बिन / निर्देशिका के तहत स्थापित किया जाएगा।

add_installed_library(name, sources, install_dir, build_info=None) [source]

Add_library के समान, लेकिन निर्दिष्ट लाइब्रेरी स्थापित है।

distutils साथ उपयोग किए जाने वाले अधिकांश सी पुस्तकालयों का उपयोग केवल अजगर एक्सटेंशन के निर्माण के लिए किया जाता है, लेकिन इस पद्धति के माध्यम से निर्मित पुस्तकालयों को स्थापित किया जाएगा ताकि उन्हें तृतीय-पक्ष पैकेज द्वारा पुन: उपयोग किया जा सके।

पैरामीटर:

नाम : str

स्थापित पुस्तकालय का नाम।

स्रोत : अनुक्रम

पुस्तकालय के स्रोत फ़ाइलों की सूची। विवरण के लिए add_library देखें।

install_dir : str

वर्तमान उप-पैकेज के सापेक्ष पुस्तकालय स्थापित करने के लिए पथ।

build_info : तानाशाह , वैकल्पिक

निम्नलिखित कुंजियों की अनुमति है:

  • निर्भर करता है
  • मैक्रो
  • include_dirs
  • extra_compiler_args
  • extra_f77_compile_args
  • extra_f90_compile_args
  • f2py_options
  • भाषा
यह दिखाता है:

कोई नहीं

यह भी देखें

add_library , add_npy_pkg_config , get_info

टिप्पणियाँ

निर्दिष्ट सी पुस्तकालयों के खिलाफ लिंक करने के लिए आवश्यक विकल्पों को एनकोड करने का सबसे अच्छा तरीका एक "libname.ini" फ़ाइल का उपयोग करना है, और आवश्यक विकल्पों को प्राप्त करने के लिए get_info का उपयोग करें (अधिक जानकारी के लिए add_npy_pkg_config देखें)।

add_npy_pkg_config(template, install_dir, subst_dict=None) [source]

टेम्पलेट से एक npy-pkg कॉन्फिग फ़ाइल को जनरेट और इंस्टॉल करें।

template से उत्पन्न कॉन्फ़िग फ़ाइल दी गई इंस्टॉल निर्देशिका में, चर प्रतिस्थापन के लिए subst_dict का उपयोग करके स्थापित की जाती है।

पैरामीटर:

साँचा : str

टेम्पलेट का पथ, अपेक्षाकृत वर्तमान पैकेज पथ के लिए।

install_dir : str

जहां npy-pkg config फाइल को स्थापित करना है, अपेक्षाकृत वर्तमान पैकेज पथ के लिए।

subst_dict : तानाशाही , वैकल्पिक

यदि दिया जाता है, तो फॉर्म में @[email protected] किसी भी स्ट्रिंग को प्रतिस्थापित फ़ाइल में subst_dict[key] द्वारा प्रतिस्थापित किया जाएगा। इंस्टॉल प्रीफिक्स हमेशा वैरिएबल @[email protected] माध्यम से उपलब्ध होता है, क्योंकि इंस्टॉल प्रीफिक्स को सेटअपडीओ से विश्वसनीय रूप से प्राप्त करना आसान नहीं होता है।

यह भी देखें

add_installed_library , get_info

टिप्पणियाँ

यह मानक इंस्टॉल और इन-प्लेस बिल्ड दोनों के लिए काम करता है, अर्थात इन-प्लेस बिल्ड के लिए स्रोत निर्देशिका के लिए @[email protected] संदर्भित करता है।

उदाहरण

config.add_npy_pkg_config('foo.ini.in', 'lib', {'foo': bar})

मान लें कि foo.ini.in फ़ाइल में निम्नलिखित सामग्री है:

[meta]
[email protected]@
Version=1.0
Description=dummy description

[default]
[email protected]@/include
Libs=

उत्पन्न फ़ाइल में निम्न सामग्री होगी:

[meta]
Name=bar
Version=1.0
Description=dummy description

[default]
Cflags=-Iprefix_dir/include
Libs=

और 'lib' उपपथ में foo.ini के रूप में स्थापित किया जाएगा।

paths(*paths, **kws) [source]

रास्तों पर ग्लोब को लागू करें और यदि आवश्यक हो तो स्थानीय_पथ को पूर्वनिर्मित करें

(यदि आवश्यक हो) अनुक्रम में प्रत्येक पथ पर glob.glob (…) को लागू करता है और यदि आवश्यक हो तो स्थानीय_पेंड को प्री-पेंड करता है। क्योंकि यह सभी स्रोत सूचियों पर कहा जाता है, इससे वाइल्डकार्ड वर्णों को विस्तार मॉड्यूल और पुस्तकालयों और लिपियों के लिए स्रोतों की सूचियों में निर्दिष्ट किया जा सकता है और पथ-नाम स्रोत निर्देशिका के सापेक्ष होने की अनुमति देता है।

get_config_cmd() [source]

Numpy.distutils कॉन्फिग कमांड उदाहरण देता है।

get_build_temp_dir() [source]

एक अस्थायी निर्देशिका के लिए एक पथ पर लौटें जहां अस्थायी फाइलें रखी जानी चाहिए।

have_f77c() [source]

फोरट्रान 77 संकलक की उपलब्धता की जाँच करें।

यह सुनिश्चित करने के लिए कि सेटअप वितरण उदाहरण को आरंभ किया गया है, स्रोत उत्पन्न करने वाले फ़ंक्शन के अंदर इसका उपयोग करें।

टिप्पणियाँ

यह सच है अगर एक फोरट्रान 77 संकलक उपलब्ध है (क्योंकि एक साधारण फोरट्रान 77 कोड सफलतापूर्वक संकलित किया जा सकता था)।

have_f90c() [source]

फोरट्रान 90 संकलक की उपलब्धता की जाँच करें।

यह सुनिश्चित करने के लिए कि सेटअप वितरण उदाहरण को आरंभ किया गया है, स्रोत उत्पन्न करने वाले फ़ंक्शन के अंदर इसका उपयोग करें।

टिप्पणियाँ

सच है अगर एक फोरट्रान 90 संकलक उपलब्ध है (क्योंकि एक साधारण फोरट्रान 90 कोड सफलतापूर्वक संकलित किया जा सकता था)

get_version(version_file=None, version_variable=None) [source]

एक पैकेज के संस्करण स्ट्रिंग प्राप्त करने का प्रयास करें।

यदि वर्तमान जानकारी का पता नहीं लगाया जा सकता है तो वर्तमान पैकेज का कोई संस्करण स्ट्रिंग या कोई भी नहीं लौटाएँ।

टिप्पणियाँ

यह विधि स्ट्रिंग चर संस्करण, __version__, और <packagename> _version के लिए __version__.py, <packagename> _version.py, version.py, और __svn_version__.py नाम की फ़ाइलों को स्कैन करती है, जब तक कि कोई संस्करण संख्या नहीं मिलती।

make_svn_version_py(delete=True) [source]

डेटा_फाइल्स सूची में एक डेटा फ़ंक्शन को लागू करता है जो वर्तमान पैकेज निर्देशिका में __svn_version__.py फ़ाइल उत्पन्न करेगा।

SVN संशोधन नंबर से पैकेज __svn_version__.py फ़ाइल जनरेट करें, यह अजगर के बाहर निकलने के बाद हटा दिया जाएगा, लेकिन sdist, आदि कमांड निष्पादित होने पर उपलब्ध होगा।

टिप्पणियाँ

यदि __svn_version__.py पहले मौजूद था, तो कुछ भी नहीं किया गया।

यह स्रोत निर्देशिकाओं के साथ काम करने के लिए अभिप्रेत है जो एक SVN रिपॉजिटरी में हैं।

make_config_py(name='__config__') [source]

पैकेज बनाने के दौरान उपयोग की जाने वाली system_info जानकारी युक्त पैकेज __config__.py फ़ाइल बनाएँ।

यह फ़ाइल पैकेज स्थापना निर्देशिका में स्थापित है।

get_info(*names) [source]

संसाधनों की जानकारी प्राप्त करें।

एक ही शब्दकोश में तर्क सूची में सभी नामों के लिए वापसी जानकारी (system_info.get_info से)।

अन्य मॉड्यूल

system_info.get_info (नाम [, notfound_action]) notfound_action:
system_info.get_standard_file (fname) से 'fname' नाम की फ़ाइलों की सूची लौटाता है
cpuinfo.cpu
log.set_verbosity (v [, बल])
exec_command exec_command

निर्माण योग्य C लाइब्रेरीज़

पारंपरिक सी लाइब्रेरी ( add_library माध्यम से स्थापित) स्थापित नहीं हैं, और केवल निर्माण के दौरान उपयोग किया जाता है (वे स्टेटिक रूप से जुड़े हुए हैं)। एक इंस्टालेबल सी लाइब्रेरी एक शुद्ध सी लाइब्रेरी है, जो अजगर सी रनटाइम पर निर्भर नहीं करता है, और इसे ऐसे स्थापित किया जाता है कि इसका उपयोग थर्ड-पार्टी पैकेज द्वारा किया जा सकता है। C लाइब्रेरी को बनाने और स्थापित करने के लिए, आप बस add_library बजाय add_installed_library की विधि का उपयोग करते हैं, जो अतिरिक्त install_dir तर्क को छोड़कर समान तर्क लेता है:

>>> config.add_installed_library('foo', sources=['foo.c'], install_dir='lib')

npy-pkg-config फ़ाइलें

तीसरे पक्ष को आवश्यक बिल्ड विकल्प उपलब्ध कराने के लिए, आप npy-pkg-config तंत्र को numpy.distutils में कार्यान्वित कर numpy.distutils । यह तंत्र एक .ini फ़ाइल पर आधारित है जिसमें सभी विकल्प हैं। । Ini फ़ाइल pkg-config unix उपयोगिता द्वारा उपयोग की जाने वाली .pc फ़ाइलों के समान है:

[meta]
Name: foo
Version: 1.0
Description: foo library

[variables]
prefix = /home/user/local
libdir = ${prefix}/lib
includedir = ${prefix}/include

[default]
cflags = -I${includedir}
libs = -L${libdir} -lfoo

आम तौर पर, फ़ाइल को बिल्ड के दौरान उत्पन्न करने की आवश्यकता होती है, क्योंकि उसे बिल्ड टाइम (उदाहरण के लिए उपसर्ग) में ज्ञात कुछ जानकारी की आवश्यकता होती है। यह ज्यादातर स्वचालित है यदि कोई Configuration विधि add_npy_pkg_config का उपयोग करता है। मान लें कि हमारे पास टेम्पलेट फ़ाइल foo.ini.in इस प्रकार है:

[meta]
Name: foo
Version: @[email protected]
Description: foo library

[variables]
prefix = @[email protected]
libdir = ${prefix}/lib
includedir = ${prefix}/include

[default]
cflags = -I${includedir}
libs = -L${libdir} -lfoo

और सेटअप कोड में निम्न कोड:

>>> config.add_installed_library('foo', sources=['foo.c'], install_dir='lib')
>>> subst = {'version': '1.0'}
>>> config.add_npy_pkg_config('foo.ini.in', 'lib', subst_dict=subst)

यह फ़ाइल foo.ini को निर्देशिका package_dir / lib में स्थापित करेगा, और foo.ini फ़ाइल foo.ini.in से उत्पन्न होगी, जहाँ प्रत्येक @[email protected] को प्रतिस्थापित किया जाएगा subst_dict['version'] । डिक्शनरी में एक अतिरिक्त उपसर्ग प्रतिस्थापन नियम स्वचालित रूप से जोड़ा गया है, जिसमें इंस्टॉल प्रीफिक्स शामिल है (क्योंकि यह सेटअपफ्रीडम से प्राप्त करना आसान नहीं है)। npy-pkg-config फ़ाइलों को भी उसी स्थान पर स्थापित किया जा सकता है, जो num_ के लिए उपयोग किया जाता है, get_npy_pkg_dir फ़ंक्शन से लौटे पथ का उपयोग करके।

एक अन्य पैकेज से सी लाइब्रेरी का पुन: उपयोग करना

जानकारी को get_info में get_info फ़ंक्शन से आसानी से प्राप्त किया numpy.distutils.misc_util :

>>> info = get_info('npymath')
>>> config.add_extension('foo', sources=['foo.c'], extra_info=**info)

.Ini फ़ाइलों को देखने के लिए पथों की एक अतिरिक्त सूची get_info को दी जा get_info

.src फ़ाइलों का रूपांतरण

NumPy डिस्टुटिल्स <somefile> .src नामक स्रोत फ़ाइलों के स्वचालित रूपांतरण का समर्थन करता है। इस सुविधा का उपयोग बहुत समान कोड ब्लॉक बनाए रखने के लिए किया जा सकता है, जिसमें ब्लॉक के बीच केवल साधारण परिवर्तन की आवश्यकता होती है। सेटअप के निर्माण के चरण के दौरान, यदि <somefile> .src नाम की एक टेम्प्लेट फ़ाइल मिलती है, तो <somefile> नामक एक नई फ़ाइल को टेम्प्लेट से निर्मित किया जाता है और इसके बजाय निर्माण निर्देशिका में रखा जाता है। टेम्पलेट रूपांतरण के दो रूप समर्थित हैं। पहला फ़ॉर्म <file> .ext.src नाम की फ़ाइलों के लिए होता है, जहाँ ext एक मान्यता प्राप्त Fortran एक्सटेंशन (f, f90, f95, f77, for, ftn, pyf) है। दूसरे फॉर्म का उपयोग अन्य सभी मामलों के लिए किया जाता है।

फोरट्रान फाइलें

यह टेम्प्लेट कन्वर्टर फाइल में सभी फ़ंक्शन और सबरूटीन ब्लॉक्स को '<…>' वाले नामों के साथ '<...>' में नियत करेगा। '<...>' में अल्पविराम से अलग किए गए शब्दों की संख्या निर्धारित करती है कि ब्लॉक कितनी बार दोहराया गया है। ये शब्द क्या इंगित करते हैं कि क्या नियम दोहराते हैं, '<...>', प्रत्येक ब्लॉक में प्रतिस्थापित किया जाना चाहिए। किसी ब्लॉक में सभी दोहराए गए नियमों में समान संख्या में अल्पविराम से अलग होने वाले शब्द होने चाहिए जो यह दर्शाता है कि ब्लॉक को दोहराया जाना चाहिए। यदि दोहराए गए नियम में शब्द को अल्पविराम, वामावर्त या दाईं ओर की जरूरत है, तो इसे बैकस्लैश '' के साथ प्रस्तुत करें। अगर रिपीट नियम में कोई शब्द '\ <इंडेक्स>' से मेल खाता है तो इसे उसी रिपीट स्पेसिफिकेशन में <इंडेक्स> -थ वर्ड से बदल दिया जाएगा। दोहराने के नियम के दो रूप हैं: नाम और संक्षिप्त।

नाम रिपीट नियम

एक दोहराने वाला नियम तब उपयोगी होता है जब एक ही ब्लॉक में कई बार दोहराए जाने वाले सेट का उपयोग किया जाना चाहिए। यह <नियम 1 = आइटम 1, आइटम 2, आइटम 3,…, आइटमएन> का उपयोग करके निर्दिष्ट किया जाता है, जहां एन कई बार ब्लॉक को दोहराया जाना चाहिए। ब्लॉक के प्रत्येक दोहराने पर, संपूर्ण अभिव्यक्ति, '<...> को पहले आइटम 1 से बदला जाएगा, और फिर आइटम 2 के साथ, और इसके बाद एन दोहराए जाने तक पूरा किया जाएगा। एक बार रिपीट स्पेसिफिकेशन पेश कर दिए जाने के बाद, वर्तमान ब्लॉक में केवल नाम (यानी <1%) का उल्लेख करके उसी रिपीट नियम का उपयोग किया जा सकता है।

लघु पुनरावृत्ति नियम

एक संक्षिप्त दोहराव नियम <item1, item2, item3,…, itemN> जैसा दिखता है। नियम निर्दिष्ट करता है कि पूरी अभिव्यक्ति, '<...>' को पहले आइटम 1 से बदला जाना चाहिए, और फिर आइटम 2 के साथ, और इसके बाद एन दोहराए जाने तक पूरा किया जाएगा।

पूर्व-परिभाषित नाम

निम्नलिखित पूर्वनिर्धारित नाम दोहराए गए नियम उपलब्ध हैं:

  • <उपसर्ग = रों, डी, सी, जेड>
  • <_C = रों, डी, सी, जेड>
  • <_t = वास्तविक, डबल सटीक, जटिल, डबल कॉम्प्लेक्स>
  • <ftype = वास्तविक, डबल सटीक, जटिल, डबल कॉम्प्लेक्स>
  • <ctype = float, double, complex_float, complex_double>
  • <ftypereal = float, double परिशुद्धता, \ 0, \ 1>
  • <ctypereal = float, double, \ 0, \ 1>

अन्य फ़ाइलें

गैर-फोरट्रान फाइलें टेम्पलेट ब्लॉकों को परिभाषित करने के लिए एक अलग वाक्यविन्यास का उपयोग करती हैं जिन्हें फ़ोरट्रान-विशिष्ट दोहराव के नाम दोहराए गए नियमों के समान एक चर विस्तार का उपयोग करके दोहराया जाना चाहिए। इन फ़ाइलों के लिए टेम्पलेट नियम हैं:

  1. "/ ** फिर से दोहराना" एक लाइन पर खुद को एक खंड की शुरुआत को चिह्नित करता है जिसे दोहराया जाना चाहिए।
  2. नामित चर विस्तार # नाम = आइटम 1, आइटम 2, आइटम 3,…, आइटमएन # का उपयोग करके परिभाषित किया गया है और क्रमिक लाइनों पर रखा गया है। ये चर प्रत्येक रिपीट ब्लॉक में संबंधित शब्द से बदले जाते हैं। एक ही रिपीट ब्लॉक में सभी नामित चर समान संख्या में शब्दों को परिभाषित करते हैं।
  3. एक नामित चर के लिए दोहराए जाने वाले नियम को निर्दिष्ट करने में, आइटम * आइटम, आइटम,…, बार-बार दोहराए गए आइटम के लिए हाथ छोटा है। इसके अलावा, * N के साथ संयोजन में कोष्ठक का उपयोग कई वस्तुओं के समूहन के लिए किया जा सकता है जिन्हें दोहराया जाना चाहिए। इस प्रकार, # नाम = (आइटम 1, आइटम 2) * 4 # # नाम = आइटम 1, आइटम 2, आइटम 1, आइटम 2, आइटम 1, आइटम 2, आइटम 1, आइटम 2 # के बराबर है
  4. "" / "एक लाइन पर ही चर विस्तार नामकरण के अंत को चिह्नित करता है। अगली पंक्ति पहली पंक्ति है जिसे नामित नियमों का उपयोग करके दोहराया जाएगा।
  5. ब्लॉक को दोहराया जाने के अंदर, जिन चर का विस्तार किया जाना चाहिए, उन्हें @ नाम @ के रूप में निर्दिष्ट किया गया है।
  6. “/ ** एंड रिपीट ** /” एक लाइन पर ही पिछली लाइन को ब्लॉक की आखिरी लाइन के रूप में दोहराया जाता है।