Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
ae43e520
Kaydet (Commit)
ae43e520
authored
Eyl 21, 2000
tarafından
Lars Gustäbel
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Added the make_parser function (patch 101571).
üst
c5cec51b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
67 additions
and
2 deletions
+67
-2
__init__.py
Lib/xml/sax/__init__.py
+67
-2
No files found.
Lib/xml/sax/__init__.py
Dosyayı görüntüle @
ae43e520
...
...
@@ -22,7 +22,6 @@ expatreader -- Driver that allows use of the Expat parser with the
"""
from
handler
import
ContentHandler
,
ErrorHandler
from
expatreader
import
ExpatParser
from
_exceptions
import
SAXException
,
SAXNotRecognizedException
,
\
SAXParseException
,
SAXNotSupportedException
...
...
@@ -33,7 +32,6 @@ def parse(filename_or_stream, handler, errorHandler=ErrorHandler()):
parser
.
setErrorHandler
(
errorHandler
)
parser
.
parse
(
filename_or_stream
)
def
parseString
(
string
,
handler
,
errorHandler
=
ErrorHandler
()):
try
:
from
cStringIO
import
StringIO
...
...
@@ -46,3 +44,70 @@ def parseString(string, handler, errorHandler=ErrorHandler()):
parser
.
setContentHandler
(
handler
)
parser
.
setErrorHandler
(
errorHandler
)
parser
.
parse
(
StringIO
(
string
))
# this is the parser list used by the make_parser function if no
# alternatives are given as parameters to the function
default_parser_list
=
[
"xml.sax.expatreader"
]
import
os
,
string
,
sys
if
os
.
environ
.
has_key
(
"PY_SAX_PARSER"
):
default_parser_list
=
string
.
split
(
os
.
environ
[
"PY_SAX_PARSER"
],
","
)
del
os
_key
=
"python.xml.sax.parser"
if
sys
.
platform
[:
4
]
==
"java"
and
sys
.
registry
.
containsKey
(
_key
):
default_parser_list
=
string
.
split
(
sys
.
registry
.
getProperty
(
_key
),
","
)
def
make_parser
(
parser_list
=
[]):
"""Creates and returns a SAX parser.
Creates the first parser it is able to instantiate of the ones
given in the list created by doing parser_list +
default_parser_list. The lists must contain the names of Python
modules containing both a SAX parser and a create_parser function."""
for
parser_name
in
parser_list
+
default_parser_list
:
try
:
return
_create_parser
(
parser_name
)
except
ImportError
,
e
:
pass
raise
SAXException
(
"No parsers found"
,
None
)
# --- Internal utility methods used by make_parser
if
sys
.
platform
[
:
4
]
==
"java"
:
def
_create_parser
(
parser_name
):
from
org.python.core
import
imp
drv_module
=
imp
.
importName
(
parser_name
,
0
,
globals
())
return
drv_module
.
create_parser
()
else
:
import
imp
as
_imp
def
_rec_find_module
(
module
):
"Improvement over imp.find_module which finds submodules."
path
=
""
for
mod
in
string
.
split
(
module
,
"."
):
if
path
==
""
:
info
=
(
mod
,)
+
_imp
.
find_module
(
mod
)
else
:
info
=
(
mod
,)
+
_imp
.
find_module
(
mod
,
[
path
])
lastmod
=
apply
(
imp
.
load_module
,
info
)
try
:
path
=
lastmod
.
__path__
[
0
]
except
AttributeError
,
e
:
pass
return
info
def
_create_parser
(
parser_name
):
info
=
_rec_find_module
(
parser_name
)
drv_module
=
apply
(
imp
.
load_module
,
info
)
return
drv_module
.
create_parser
()
del
sys
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment