Mise à jour
Mise à jour de la base de données, veuillez patienter...
Site original : Tiger-222
Ce qui suit est une traduction libre de l'entretien d'un des développeurs du logiciel TrueCrypt, Ennead, par WolfManz611. C'était le samedi 10 septembre 2005.
# swapoff partition
sudo swapoff /dev/sda1
Ce qui suit est une traduction libre de l'entretien d'un des développeurs du logiciel TrueCrypt, Ennead, par WolfManz611. C'était le samedi 10 septembre 2005.
# swapoff partition
sudo swapoff /dev/sda1
$ python setup.py register
$ python setup.py sdist upload
setup.py
, et bien c'est lui qui gère tout. Vous pouvez voir les projets MSS ou minibelt pour vous en inspirer ; voici un exemple tiré du module MSS :# Import du bon module de gestion
try:
from distutils.core import setup
except ImportError:
from setuptools import setup
# Dans le fichier MANIFEST.in, on y liste les ficihers et dossiers à inclure (ou pas)
# dans l'archive qui sera déployée.
# Par défaut, seuls les fichiers module.py et setup.py sont inclus.
open('MANIFEST.in', 'w').write('\n'.join((
"include *.rst",
# un_dossier/*.py
# un_autre_fichier.py
# prune archives/ <-- ne pas inclure le dossier archives
)))
# En option, importez la version de votre module
from mss import __version__
# Le nom des clefs est assez explicite, on renseigne les infos principales du module
setup(
name='mss',
version=__version__,
author='Tiger-222',
py_modules=['mss'],
author_email='contact@tiger-222.fr',
description='A cross-platform multi-screen shot module in pure python using ctypes',
long_description=open('README.rst').read(),
classifiers=[
'Programming Language :: Python',
'Intended Audience :: Developers',
'Intended Audience :: Information Technology',
'License :: OSI Approved :: zlib/libpng License',
'Natural Language :: English',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.3',
'Topic :: Multimedia :: Graphics :: Capture :: Screen Capture',
],
url='https://github.com/BoboTiG/python-mss'
)
Vous aurez remarquer la présence d'un certain README.rst (format ReStructuredText), il s'agit de la description complète du module (ses classes et méthodes, exemples, ...).$ python setup.py register
running register
running check
We need to know who you are, so please choose either:
1. use your existing login,
2. register as a new user,
3. have the server generate a new password for you (and email it to you), or
4. quit
Your selection [default 1]:
Si vous n'avez pas encore de compte, prenez l'option 2, sinon la 1.Registering mss to http://pypi.python.org/pypi
Server response (200): OK
$ python setup.py sdist upload
running sdist
running check
warning: sdist: standard file not found: should have one of README, README.txt
reading manifest template 'MANIFEST.in'
writing manifest file 'MANIFEST'
creating mss-0.0.2
making hard links in mss-0.0.2...
hard linking README.rst -> mss-0.0.2
hard linking mss.py -> mss-0.0.2
hard linking setup.py -> mss-0.0.2
creating dist
Creating tar archive
removing 'mss-0.0.2' (and everything under it)
Submitting dist/mss-0.0.2.tar.gz to http://pypi.python.org/pypi
Upload (200): OK
Emballé, c'est pesé !pip install mss
!$ python setup.py register
$ python setup.py sdist upload
setup.py
, et bien c'est lui qui gère tout. Vous pouvez voir les projets MSS ou minibelt pour vous en inspirer ; voici un exemple tiré du module MSS :# Import du bon module de gestion
try:
from distutils.core import setup
except ImportError:
from setuptools import setup
# Dans le fichier MANIFEST.in, on y liste les ficihers et dossiers à inclure (ou pas)
# dans l'archive qui sera déployée.
# Par défaut, seuls les fichiers module.py et setup.py sont inclus.
open('MANIFEST.in', 'w').write('\n'.join((
"include *.rst",
# un_dossier/*.py
# un_autre_fichier.py
# prune archives/ <-- ne pas inclure le dossier archives
)))
# En option, importez la version de votre module
from mss import __version__
# Le nom des clefs est assez explicite, on renseigne les infos principales du module
setup(
name='mss',
version=__version__,
author='Tiger-222',
py_modules=['mss'],
author_email='contact@tiger-222.fr',
description='A cross-platform multi-screen shot module in pure python using ctypes',
long_description=open('README.rst').read(),
classifiers=[
'Programming Language :: Python',
'Intended Audience :: Developers',
'Intended Audience :: Information Technology',
'License :: OSI Approved :: zlib/libpng License',
'Natural Language :: English',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.3',
'Topic :: Multimedia :: Graphics :: Capture :: Screen Capture',
],
url='https://github.com/BoboTiG/python-mss'
)
Vous aurez remarquer la présence d'un certain README.rst (format ReStructuredText), il s'agit de la description complète du module (ses classes et méthodes, exemples, ...).$ python setup.py register
running register
running check
We need to know who you are, so please choose either:
1. use your existing login,
2. register as a new user,
3. have the server generate a new password for you (and email it to you), or
4. quit
Your selection [default 1]:
Si vous n'avez pas encore de compte, prenez l'option 2, sinon la 1.Registering mss to http://pypi.python.org/pypi
Server response (200): OK
$ python setup.py sdist upload
running sdist
running check
warning: sdist: standard file not found: should have one of README, README.txt
reading manifest template 'MANIFEST.in'
writing manifest file 'MANIFEST'
creating mss-0.0.2
making hard links in mss-0.0.2...
hard linking README.rst -> mss-0.0.2
hard linking mss.py -> mss-0.0.2
hard linking setup.py -> mss-0.0.2
creating dist
Creating tar archive
removing 'mss-0.0.2' (and everything under it)
Submitting dist/mss-0.0.2.tar.gz to http://pypi.python.org/pypi
Upload (200): OK
Emballé, c'est pesé !pip install mss
!function php_stat($fichier)
{
'file_exists'
↳ virtual_file_ex($fichier)
↳ virtual_access($fichier)
'Windows'
↳ tsrm_win32_access($fichier)
↳ return access($fichier)
'Autres systèmes'
↳ return access($fichier)
↳ return _php_stream_stat_path($fichier) == FALSE
'is_file'
↳ _php_stream_stat_path($fichier)
↳ return $fichier.st_mode == S_IFREG
}
file_exists()
nécessite bien plus d'opérations à effectuer. Cependant, _php_stream_stat_path()
est lourde puisqu'elle récupère toutes les informations sur un fichier/dossier (appelé inode) : volume, numéro d'inode, droit d'accès à l'inode, nombre de liens, userid du propriétaire, groupid du propriétaire, type du volume, si le volume est une inode, taille en octets, date de dernier accès (Unix timestamp), date de dernière modification (Unix timestamp), date de dernier changement d'inode (Unix timestamp), taille de bloc et le nombre de blocs de 512 octets alloués.file_exists()
. À priori, cette fonction utiliserait aussi le système de cache.Great alternative to file_exists() is stream_resolve_include_path() -- DeyV
function stream_resolve_include_path($fichier)
{
zend_resolve_path($fichier)
↳ php_resolve_path_for_zend($fichier)
↳ php_resolve_path($fichier)
↳ tsrm_realpath($fichier)
↳ return estrdup($fichier)
}
is_file()
est plus rapide dans tous les casfile_exists()
a un léger avantage sur stream_resolve_include_path()
, si ce dernier utilise les chemins absolusstream_resolve_include_path()
est un gouffre avec les chemins relatifs