3. Zmiany w module os¶
Powiedzmy, że chcielibyśmy zmienić zachowanie metod z modułu os
.
3.1. Założenia¶
listdir
będzie pokazywał pliki/foldery które nie są ukryte (Wszystkie pliki/foldery z kropką na początku będą pomijane)
3.2. Utworzenie gałęzi (branch)¶
Aby utworzyć gałąż z naszymi zmianami:
git checkout -b oslib_changes
3.4. Wyszukiwanie kodu¶
Domyślnie moduły znajdują się w: Lib/
. Do podejrzenia na github
Jako że używamy systemu posix
(mac). W kodzie mamy sprawdzenie tego faktu w linni 48 os.py
.
Linia 48 - sprawdzenie systemu
Linia 51 - załadowanie wszystkiego z
posix
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | if 'posix' in _names:
name = 'posix'
linesep = '\n'
from posix import *
try:
from posix import _exit
__all__.append('_exit')
except ImportError:
pass
import posixpath as path
try:
from posix import _have_functions
except ImportError:
pass
import posix
__all__.extend(_get_exports_list(posix))
del posix
|
Po wyszukaniu
listdir
niczego nie znaleziono,Prawdopodobnie
listdir
jest w innym module - np.posix
.
Hint
Biblioteka posix
jest napisana w niskopoziomowy sposób język C
Jego prawdziwa nazwa to:
posixmodule.c
Linia 2 - nazwa funkcji dostępna w debugerze,
Linia 8 - sprawdzenie czy jest dostępna funkcja
fdopendir
- funkcja Unixowa
Hint
Można sprawdzić tą funkcję przy użyciu man fdeopendir
3.5. Zadania¶
Zmienić