From 761f7e6618b74d4818348b64c96c263dfa31fb03 Mon Sep 17 00:00:00 2001 From: xiubuzhe Date: Tue, 10 Oct 2023 18:42:56 +0800 Subject: [PATCH] add yumrepos,mpi,ntfs,nvidia,openmpi,schrodinger --- bin/nvidia-detect | Bin 0 -> 21240 bytes lib/sunhpc/commands/__init__.py | 58 + .../commands/report/yumrepos/__init__.py | 317 ++++ lib/sunhpc/commands/soft/autodock/__init__.py | 117 +- lib/sunhpc/commands/soft/cmake/__init__.py | 122 +- lib/sunhpc/commands/soft/gaussian/__init__.py | 145 +- lib/sunhpc/commands/soft/gromacs/__init__.py | 257 +-- lib/sunhpc/commands/soft/mpi/__init__.py | 158 ++ lib/sunhpc/commands/soft/ntfs/__init__.py | 149 ++ lib/sunhpc/commands/soft/nvidia/__init__.py | 152 ++ lib/sunhpc/commands/soft/openmpi/__init__.py | 159 ++ .../commands/soft/schrodinger/__init__.py | 170 ++ lib/yaml/__init__.py | 390 +++++ .../_yaml.cpython-310-x86_64-linux-gnu.so | Bin 0 -> 2226000 bytes lib/yaml/composer.py | 139 ++ lib/yaml/constructor.py | 748 +++++++++ lib/yaml/cyaml.py | 101 ++ lib/yaml/dumper.py | 62 + lib/yaml/emitter.py | 1137 +++++++++++++ lib/yaml/error.py | 75 + lib/yaml/events.py | 86 + lib/yaml/loader.py | 63 + lib/yaml/nodes.py | 49 + lib/yaml/parser.py | 589 +++++++ lib/yaml/reader.py | 185 +++ lib/yaml/representer.py | 389 +++++ lib/yaml/resolver.py | 227 +++ lib/yaml/scanner.py | 1435 +++++++++++++++++ lib/yaml/serializer.py | 111 ++ lib/yaml/tokens.py | 104 ++ 30 files changed, 7406 insertions(+), 288 deletions(-) create mode 100755 bin/nvidia-detect create mode 100644 lib/sunhpc/commands/report/yumrepos/__init__.py create mode 100644 lib/sunhpc/commands/soft/mpi/__init__.py create mode 100644 lib/sunhpc/commands/soft/ntfs/__init__.py create mode 100644 lib/sunhpc/commands/soft/nvidia/__init__.py create mode 100644 lib/sunhpc/commands/soft/openmpi/__init__.py create mode 100644 lib/sunhpc/commands/soft/schrodinger/__init__.py create mode 100644 lib/yaml/__init__.py create mode 100755 lib/yaml/_yaml.cpython-310-x86_64-linux-gnu.so create mode 100644 lib/yaml/composer.py create mode 100644 lib/yaml/constructor.py create mode 100644 lib/yaml/cyaml.py create mode 100644 lib/yaml/dumper.py create mode 100644 lib/yaml/emitter.py create mode 100644 lib/yaml/error.py create mode 100644 lib/yaml/events.py create mode 100644 lib/yaml/loader.py create mode 100644 lib/yaml/nodes.py create mode 100644 lib/yaml/parser.py create mode 100644 lib/yaml/reader.py create mode 100644 lib/yaml/representer.py create mode 100644 lib/yaml/resolver.py create mode 100644 lib/yaml/scanner.py create mode 100644 lib/yaml/serializer.py create mode 100644 lib/yaml/tokens.py diff --git a/bin/nvidia-detect b/bin/nvidia-detect new file mode 100755 index 0000000000000000000000000000000000000000..0226640c6ed5ccdb94478703565e99ee75d64800 GIT binary patch literal 21240 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 + Recovery to the original state content + + + + Specify an yum repos address source + + + + Specify an web addr protocol http/https + + + + Output the current path prefix to the distribution. + + """ + def run(self, params, args): + + (url, protocol) = self.fillParams([ + ('url', 'mirrors.ustc.edu.cn'), + ('proto', 'https'), + ]) + + orig = False + if len(args) and args[0] == 'orig': + orig = True + + + ''' + ports = 80 if protocol == 'http' else 443 + status = self.netup(url, port=ports) + if not status: + self.msg('The "%s://%s" url unable to access.' % (protocol, url), 'a') + ''' + + sysbackup = '/etc/sunhpc-backups' + yumbackup = os.path.join(sysbackup, 'yumRepos') + tagbackup = os.path.join(sysbackup, '.backupinfo') + + reposdirs = '/etc/yum.repos.d' + + if not os.path.exists(yumbackup): + os.makedirs(yumbackup) + + s = self.confinfo(tagbackup, 'yum') + if not s: + # start backup yum repos + for name in os.listdir(reposdirs): + fsrc = os.path.join(reposdirs, name) + fdst = os.path.join(yumbackup, name) + shutil.copyfile(fsrc, fdst) + os.remove(fsrc) + + self.msg('yum repos already backup finished. backup to %s' % yumbackup, 'i') + + if orig: + rocky_appstream_url = 'mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=AppStream-$releasever' + rocky_baseos_url = 'mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever' + rocky_extras_url = 'mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=extras-$releasever' + epel_base_url = 'metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=$basearch&infra=$infra&content=$contentdir' + epel_source_url = 'metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-8&arch=$basearch&infra=$infra&content=$contentdir' + + elrepo_base_url = 'baseurl=https://mirrors.ustc.edu.cn/elrepo/elrepo/el$releasever/$basearch' + elrepo_test_url = 'baseurl=https://mirrors.ustc.edu.cn/elrepo/testing/el$releasever/$basearch' + elrepo_kernel_url = 'baseurl=https://mirrors.ustc.edu.cn/elrepo/kernel/el$releasever/$basearch' + elrepo_extras_url = 'baseurl=https://mirrors.ustc.edu.cn/elrepo/extras/el$releasever/$basearch' + else: + rocky_appstream_url = 'baseurl=%s://%s/rocky/$releasever/AppStream/$basearch/os/' % (protocol, url) + rocky_baseos_url = 'baseurl=%s://%s/rocky/$releasever/BaseOS/$basearch/os/' % (protocol, url) + rocky_extras_url = 'baseurl=%s://%s/rocky/$releasever/extras/$basearch/os/' % (protocol, url) + epel_base_url = 'baseurl=%s://%s/epel/8/Everything/$basearch' % (protocol, url) + epel_source_url = 'baseurl=%s://%s/epel/8/Everything/source/tree' % (protocol, url) + + elrepo_base_url = 'baseurl=%s://%s/elrepo/elrepo/el$releasever/$basearch' % (protocol, url) + elrepo_test_url = 'baseurl=%s://%s/elrepo/testing/el$releasever/$basearch' % (protocol, url) + elrepo_kernel_url = 'baseurl=%s://%s/elrepo/kernel/el$releasever/$basearch' % (protocol, url) + elrepo_extras_url = 'baseurl=%s://%s/elrepo/extras/el$releasever/$basearch' % (protocol, url) + + + yum_list = [] + # AppStream + rocky_appstream_file = '/etc/yum.repos.d/Rocky-AppStream.repo' + rocky_appstream_info = """ + # + # Generated by sunhpc report yumrepos commands. + # + [appstream] + name=Rocky Linux $releasever - AppStream + %s + gpgcheck=1 + enabled=1 + countme=1 + gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial + """ % rocky_appstream_url + appstream_text = textwrap.dedent(rocky_appstream_info) + yum_list.append([rocky_appstream_file, appstream_text]) + + # BaseOS + rocky_baseos_file = '/etc/yum.repos.d/Rocky-BaseOS.repo' + rocky_baseos_info = """ + # + # Generated by sunhpc report yumrepos commands. + # + [appstream] + name=Rocky Linux $releasever - BaseOS + %s + gpgcheck=1 + enabled=1 + countme=1 + gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial + """ % rocky_baseos_url + baseos_text = textwrap.dedent(rocky_baseos_info) + yum_list.append([rocky_baseos_file, baseos_text]) + + # Extras + rocky_extras_file = '/etc/yum.repos.d/Rocky-Extras.repo' + rocky_extras_info = """ + # + # Generated by sunhpc report yumrepos commands. + # + [appstream] + name=Rocky Linux $releasever - Extras + %s + gpgcheck=1 + enabled=0 + countme=1 + gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial + """ % rocky_extras_url + extras_text = textwrap.dedent(rocky_extras_info) + yum_list.append([rocky_extras_file, extras_text]) + + # Media + media_local = 0 + try: + if len(os.listdir('/mnt/cdrom/BaseOS')): + media_local = 1 + except FileNotFoundError: + pass + + rocky_media_file = '/etc/yum.repos.d/Rocky-Media.repo' + rocky_media_info = """ + # + # Generated by sunhpc report yumrepos commands. + # + [media-baseos] + name=Rocky Linux $releasever - Media - BaseOS + baseurl=file:///mnt/cdrom/BaseOS + gpgcheck=1 + enabled=%s + gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial + + [media-appstream] + name=Rocky Linux $releasever - Media - AppStream + baseurl=file:///mnt/cdrom/AppStream + gpgcheck=1 + enabled=%s + gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial + """ % (media_local, media_local) + media_text = textwrap.dedent(rocky_media_info) + yum_list.append([rocky_media_file, media_text]) + + # epel repos + epel_file = '/etc/yum.repos.d/epel.repo' + epel_info = """ + # + # Generated by sunhpc report yumrepos commands. + # + [epel] + name=Extra Packages for Enterprise Linux 8 - $basearch + %s + enabled=1 + gpgcheck=1 + countme=1 + gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 + + [epel-source] + name=Extra Packages for Enterprise Linux 8 - $basearch - Source + %s + enabled=0 + gpgcheck=1 + gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 + """ % (epel_base_url, epel_source_url) + epel_text = textwrap.dedent(epel_info) + yum_list.append([epel_file, epel_text]) + + + # elrepo repos + elrepo_file = '/etc/yum.repos.d/elrepo.repo' + elrepo_info = """ + # + # Generated by sunhpc report yumrepos commands. + # + [elrepo] + name=ELRepo.org Community Enterprise Linux Repository - el8 + %s + enabled=1 + countme=1 + gpgcheck=1 + gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org + + [elrepo-testing] + name=ELRepo.org Community Enterprise Linux Testing Repository - el8 + %s + enabled=0 + countme=1 + gpgcheck=1 + gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org + + [elrepo-kernel] + name=ELRepo.org Community Enterprise Linux Kernel Repository - el8 + %s + enabled=0 + countme=1 + gpgcheck=1 + gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org + + [elrepo-extras] + name=ELRepo.org Community Enterprise Linux Extras Repository - el8 + %s + enabled=1 + countme=1 + gpgcheck=1 + gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org + """ % (elrepo_base_url, elrepo_test_url, elrepo_kernel_url, elrepo_extras_url) + elrepo_text = textwrap.dedent(elrepo_info) + yum_list.append([elrepo_file, elrepo_text]) + + for f, t in yum_list: + with open(f, 'w') as fn: + fn.write('%s\n' % t) + + elrepo_key_file ='/etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org' + elrepo_key_info = """ + -----BEGIN PGP PUBLIC KEY BLOCK----- + Version: GnuPG v1.4.5 (GNU/Linux) + + mQGiBEm+/6QRBAC5mbtqOFSQ0FkTLIMdIoqxtraIeUqwbPp3IBYQ/u/EREjyEf1D + qFyBEXII0dD8JDT85vRZ81jhB7nFWa0VbUfY0xfghkbnokiNBVNpiQcvszw3UYDF + aLAaOC8Z98vmlsQaBBTQG6704ZXLr7FJyG3GP5WE6egXIQQbrMcdmCoRBwCg/dwC + HLWjuemoDc5SX7hKHbB4zZ8D/jP+oMbqz+bDn8OZ2UuaGdxr+mHW8tzTdPjnEU8e + hUt1ws8eBqn/gMfKvUBa8xFSILe8Ty99u+VjFbcRsdf0H6dRre9AdDVUz5oxzoPw + gamA8mhPQvFh3wt9smtRUh5IoM2LiM1s5pGMLuYuvSnVUPArEnSfW6K5I6v7OarU + 3WfrBACDEGGcaWKjfdkRtmKIQrzu6AnldVC1ISLVAoqxHnKNFTk1BgO0PSZDpfJI + x8fMCnGlusoL6F5+LYEk4K4B0zvlj1ur3JocjxpuBLccl94JTo/+I9ZbS8ptUqLw + LBUkgIQJzzIH4G5NZsQ3FpzSWGRFVa7etqTv9BfUMUmJxhEoobQ/ZWxyZXBvLm9y + ZyAoUlBNIFNpZ25pbmcgS2V5IGZvciBlbHJlcG8ub3JnKSA8c2VjdXJlQGVscmVw + by5vcmc+iGAEExECACAFAkm+/6QCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAK + CRAwm8MFuq2uUlgWAKCGWOpyodbzxS7Xy/0X9m9qVnHq+ACfUHrQzYAtFRpT07Sg + giosE+mvAKu5Ag0ESb7/pxAIALgT0q0HhwugE717a7N+gAtCbFu8pCXOZcrAnJpG + cMA9VWmsODZStPTxXYM2ggCMSzUnNis8pPZOPIP5C+t2IYtVjLshM4C9UiY7u5ET + jErWCxWmF+2QLO50K56E4qxj0wufZt9P+Ih0USUM5L2oyrQG51uj/2v3Qq3igc8Z + NTtmEOfis3losusQbAfZtTBmNQ0570kkhMxiyavgAUxLenXHYrkDJFuL7XdBCmna + kykTn2dzU81rIDZ+QPxII4V/eZ5xGiRY/EDUIAysEV2m0NNZgWi/twUnZICm7zYp + VRviJrBnFTvNEPMhiGRnJgQp/Krv4WIHQ67N8lQg3q5RJX8AAwUH/0UBjBgbsuWR + dB+ZYWjKPBy+bJY/6HefPUuLrt3QDNINMW8kY7VzWRMWyGc4IlPJDW0nwOn/vT5H + Dgc3YmA3tm7cKj5wpFijzff61Db8eq+CUKGscKxDBGzHq6oirM5U7DQLmipCs5Eb + efwHIjE3aOUSnoQmniEnBWI2hm/rftmY9oJSi8xgns4wAokDPiMcucADtbV3fznx + ppuowtBi8bcGB1vJZjTySQcSKWv+IVp5ej06uZ9501BEm6HxUZkuAGPecP65kcQu + 5bg7B7LQeI5AWyujqvfuWgAF34xhl9QU/sDWxM3wUog+bw7y8pyWCqnJhp70yx8o + SqzhFygT62eISQQYEQIACQUCSb7/pwIbDAAKCRAwm8MFuq2uUq8PAKC1+E2pSwiS + oHXkKYPYDwApsP1mVACfRe1YnggLYQtG9LMeweVQQC77rK8= + =qyRr + -----END PGP PUBLIC KEY BLOCK----- + """ + elrepo_key_text = textwrap.dedent(elrepo_key_info) + # rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org + + with open(elrepo_key_file, 'w') as fn: + fn.write(elrepo_key_text) + os.chmod(elrepo_key_file, 0o644) + +RollName = "base" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/sunhpc/commands/soft/autodock/__init__.py b/lib/sunhpc/commands/soft/autodock/__init__.py index 4b66cf0..f67f372 100644 --- a/lib/sunhpc/commands/soft/autodock/__init__.py +++ b/lib/sunhpc/commands/soft/autodock/__init__.py @@ -7,6 +7,7 @@ #WebSite : https://www.sunhpc.com import os +import re import sys import sunhpc import shutil @@ -16,93 +17,111 @@ class command(sunhpc.commands.soft.command): class Command(command): """ - Build the AutoDock software. + Compilation and installation of the parallel computing software. - Specifies the software version. e.g,, version=4.2.6 + Specifies the software version. e.g,, version=x.x.x + + Specifies the software source path. Default: /mnt/usb + + - Specifies the software install path. - Default: /share/apps/soft/autodock + Specifies the software install path. Default: /share/apps/soft - Specifies the software env path. - Default: /share/apps/envs + Specifies the environment variable storage path. Default: /share/apps/envs - - Specifies the software source path. e.g,, /mnt/usb - Default: /mnt/usb - - - - install the autodock software. + + Build the command line and associated parameters for this software. """ def run(self, params, args): - (prefix, version, source, envs) = self.fillParams([ - ('prefix', '/share/apps/soft/autodock'), - ('version', None), + (prefix, source, envs, version) = self.fillParams([ + ('prefix', '/share/apps/soft'), ('source', '/mnt/usb'), ('envs', '/share/apps/envs'), + ('version', None), ]) + softname = 'autodock' + suffname = 'tar.gz' + dirsname = os.path.join(source, 'hpcsoft', 'AutoDock') + verslist = self.getVersions(key=softname, suffix=suffname, dirs=dirsname) + if len(args): version = args[0] if not version: - self.msg('must supply an "AutoDock version" e.g,, version=4.2.6', 'a') + self.msg('must supply an "Version Number", e.g,, version=%s' % '/'.join(verslist), 'a') - try: - os.makedirs(prefix) - self.msg("The %s directory does not exist,and it will be created." % prefix, 'w') - except FileExistsError: - pass + self.create_dirs(prefix, source, envs, version, softname, suffname, dirsname) - if not os.path.exists(envs): - os.makedirs(envs) + self.build(prefix) + self.clean() - if version == '4.2.6': - basename = 'autodock-4.2.6' - else: - self.msg('Version error, Try use version number "4.2.6"', 'a') + def build(self, prefix): + """Start build the software.""" + self.cwd = os.getcwd() - filename = '%s.tar.bz2' % basename + names = os.listdir(self.tmpdirs) + if self.basename not in names: + self.msg('Unpack the file from the %s to the %s directory.' % (self.filename, prefix)) + os.system('tar -xf %s -C %s' % (self.source, prefix)) - softname = os.path.join(source, 'hpcsoft/AutoDock', filename) - if not os.path.exists(softname): - self.msg('The "%s" not found.' % softname, 'a') - destname = os.path.join(prefix, basename) - softlist = os.listdir(prefix) - - if basename in softlist: - self.msg('The %s already exists,to reinstall it, remove it first.' % basename, 'w') - else: - self.msg('Start installing the %s software to the %s directory...' % (basename, prefix)) - os.system('tar -xf %s -C %s' % (softname, prefix)) - - gsenv = os.path.join(envs, '%s-env.sh' % basename) - with open(gsenv, 'w') as f: + with open(self.envfile, 'w') as f: f.write('#!/bin/sh\n') - f.write('#\n# %s env config\n#\n\n' % basename) - f.write('export PATH=%s/%s:$PATH\n' % (prefix, basename)) + f.write('#\n# %s env config\n#\n\n' % self.basename) + f.write('export PATH=%s:$PATH\n' % (self.prefix)) # create shared user and group. self.msg('') self.msg('--------------------------------------------------------') - self.msg('Create a shared group to run the %s software.' % basename) + self.msg('Create a shared group to run the %s software.' % self.basename) self.msg(' 1, groupadd -g 888 public ') self.msg(' 2, usermod -G public dell ') - self.msg(' 3, chown -R root:public %s/%s' % (prefix, basename)) + self.msg(' 3, chown -R root:public %s' % self.prefix) self.msg('--------------------------------------------------------') self.msg('') - self.msg(' source %s' % gsenv) + self.msg(' source %s' % self.envfile) self.msg('--------------------------------------------------------') - + + + def create_dirs(self, prefix, source, envs, version, softname, suffname, dirsname): + """Create base build directory.""" + + self.basename = '%s-%s' % (softname, version) + self.filename = '%s.%s' % (self.basename, suffname) + + self.prefix = os.path.join(prefix, softname, version) + if not os.path.exists(self.prefix): + os.makedirs(self.prefix) + + self.source = os.path.join(dirsname, self.filename) + if not os.path.exists(self.source): + self.msg('The %s does not exist,please check it.' % self.source, 'a') + + if not os.path.exists(envs): + os.makedirs(envs) + self.envfile = os.path.join(envs, '%s-%s' % (softname, version)) + + self.tmpdirs = os.path.join(prefix, 'tmpdirs', softname) + if not os.path.exists(self.tmpdirs): + os.makedirs(self.tmpdirs) + + def clean(self): + """Clean the install tmp directory.""" + if os.path.exists(self.tmpdirs): + shutil.rmtree(self.tmpdirs) + + + + diff --git a/lib/sunhpc/commands/soft/cmake/__init__.py b/lib/sunhpc/commands/soft/cmake/__init__.py index 7f39cae..ac5172e 100644 --- a/lib/sunhpc/commands/soft/cmake/__init__.py +++ b/lib/sunhpc/commands/soft/cmake/__init__.py @@ -7,6 +7,7 @@ #WebSite : https://www.sunhpc.com import os +import re import sys import sunhpc import shutil @@ -16,98 +17,111 @@ class command(sunhpc.commands.soft.command): class Command(command): """ - Build the Cmake software. + Compilation and installation of the parallel computing software. - Specifies the software version. e.g,, version=3.26.4 + Specifies the software version. e.g,, version=x.x.x + + Specifies the software source path. Default: /mnt/usb + + - Specifies the software install path. - Default: /share/apps/soft/cmake + Specifies the software install path. Default: /share/apps/soft - Specifies the software env path. - Default: /share/apps/envs + Specifies the environment variable storage path. Default: /share/apps/envs - - Specifies the software source path. e.g,, /mnt/usb - Default: /mnt/usb - - - - install the cmake software. + + Build the command line and associated parameters for this software. """ def run(self, params, args): - (prefix, version, source, envs) = self.fillParams([ - ('prefix', '/share/apps/soft/cmake'), - ('version', '3.26.4'), + (prefix, source, envs, version) = self.fillParams([ + ('prefix', '/share/apps/soft'), ('source', '/mnt/usb'), ('envs', '/share/apps/envs'), + ('version', None), ]) + softname = 'cmake' + suffname = 'sh' + dirsname = os.path.join(source, 'hpcsoft', 'Cmake') + verslist = self.getVersions(key=softname, suffix=suffname, dirs=dirsname) + if len(args): version = args[0] if not version: - self.msg('must supply an "Cmake version" e.g,, version=3.26.4', 'a') + self.msg('must supply an "Version Number", e.g,, version=%s' % '/'.join(verslist), 'a') - try: - os.makedirs(prefix) - self.msg("The %s directory does not exist,and it will be created." % prefix, 'w') - except FileExistsError: - pass + self.create_dirs(prefix, source, envs, version, softname, suffname, dirsname) - if not os.path.exists(envs): - os.makedirs(envs) + self.build(prefix) + self.clean() - if version == '3.26.4': - basename = 'cmake-%s-linux-x86_64' % version - else: - self.msg('Version error, Try use version number "3.26.4"', 'a') + def build(self, prefix): + """Start build the software.""" + self.cwd = os.getcwd() - filename = '%s.sh' % basename + names = os.listdir(self.tmpdirs) + if self.basename not in names: + self.msg('Unpack the file from the %s to the %s directory.' % (self.filename, prefix)) + os.system('sh %s --prefix=%s --skip-license' % (self.source, self.prefix)) - softname = os.path.join(source, 'hpcsoft/Cmake', filename) - if not os.path.exists(softname): - self.msg('The "%s" not found.' % softname, 'a') - destname = os.path.join(prefix, version) - if not os.path.exists(destname): - os.makedirs(destname) - - makename = os.path.join(prefix, version, 'bin', 'cmake') - if os.path.exists(makename): - self.msg('The "cmake" already exists,to reinstall it, remove it first.', 'w') - else: - self.msg('Start installing the cmake software to the %s directory...' % (destname)) - # ./cmake-3.26.4-linux-x86_64.sh --prefix=/share/apps/soft/cmake --skip-license - cmd = 'sh %s --prefix=%s --skip-license' % (softname, destname) - print ('cmd---->', cmd) - os.system('sh %s --prefix=%s --skip-license' % (softname, destname)) - - gsenv = os.path.join(envs, 'cmake-%s-env.sh' % version) - with open(gsenv, 'w') as f: + with open(self.envfile, 'w') as f: f.write('#!/bin/sh\n') - f.write('#\n# %s env config\n#\n\n' % basename) - f.write('export PATH=%s/bin:$PATH\n' % destname) + f.write('#\n# %s env config\n#\n\n' % self.basename) + f.write('export PATH=%s/bin:$PATH\n' % (self.prefix)) # create shared user and group. self.msg('') self.msg('--------------------------------------------------------') - self.msg('Create a shared group to run the %s software.' % basename) + self.msg('Create a shared group to run the %s software.' % self.basename) self.msg(' 1, groupadd -g 888 public ') self.msg(' 2, usermod -G public dell ') - self.msg(' 3, chown -R root:public %s' % prefix) + self.msg(' 3, chown -R root:public %s' % self.prefix) self.msg('--------------------------------------------------------') self.msg('') - self.msg(' source %s' % gsenv) + self.msg(' source %s' % self.envfile) self.msg('--------------------------------------------------------') - + + + def create_dirs(self, prefix, source, envs, version, softname, suffname, dirsname): + """Create base build directory.""" + + self.basename = '%s-%s' % (softname, version) + self.filename = '%s.%s' % (self.basename, suffname) + + self.prefix = os.path.join(prefix, softname, version) + if not os.path.exists(self.prefix): + os.makedirs(self.prefix) + + self.source = os.path.join(dirsname, self.filename) + if not os.path.exists(self.source): + self.msg('The %s does not exist,please check it.' % self.source, 'a') + + if not os.path.exists(envs): + os.makedirs(envs) + self.envfile = os.path.join(envs, '%s-%s' % (softname, version)) + + self.tmpdirs = os.path.join(prefix, 'tmpdirs', softname) + if not os.path.exists(self.tmpdirs): + os.makedirs(self.tmpdirs) + + def clean(self): + """Clean the install tmp directory.""" + if os.path.exists(self.tmpdirs): + shutil.rmtree(self.tmpdirs) + + + + diff --git a/lib/sunhpc/commands/soft/gaussian/__init__.py b/lib/sunhpc/commands/soft/gaussian/__init__.py index cff01a0..e9debdd 100644 --- a/lib/sunhpc/commands/soft/gaussian/__init__.py +++ b/lib/sunhpc/commands/soft/gaussian/__init__.py @@ -7,6 +7,7 @@ #WebSite : https://www.sunhpc.com import os +import re import sys import sunhpc import shutil @@ -16,115 +17,121 @@ class command(sunhpc.commands.soft.command): class Command(command): """ - Build the Gaussian software. + Compilation and installation of the parallel computing software. - Specifies the software version. e.g,, version=03/09/16 + Specifies the software version. e.g,, version=x.x.x - - Only the Gaussian09 version will use it, e.g,, ext=a01/d01/e01. - Default: E01 + + Specifies the software source path. Default: /mnt/usb - Specifies the software install path. - Default: /share/apps/soft/gaussian + Specifies the software install path. Default: /share/apps/soft - Specifies the software env path. - Default: /share/apps/envs + Specifies the environment variable storage path. Default: /share/apps/envs - - Specifies the software source path. e.g,, /mnt/usb - Default: /mnt/usb - - - - install the gaussian software. + + Build the command line and associated parameters for this software. """ def run(self, params, args): - (prefix, version, source, envs, ext) = self.fillParams([ - ('prefix', '/share/apps/soft/gaussian'), - ('version', None), + (prefix, source, envs, version) = self.fillParams([ + ('prefix', '/share/apps/soft'), ('source', '/mnt/usb'), ('envs', '/share/apps/envs'), - ('ext', 'e01'), + ('version', None), ]) + dirsname = os.path.join(source, 'hpcsoft', 'Gaussian') + suffname = 'tar.bz2' + verslist = [] + for ver in os.listdir(dirsname): + if ver.endswith(suffname): + verslist.append(ver.split('.')[0]) + + # args: g09-a01 if len(args): - version = args[0] + version = args[0].split('-')[1] if not version: - self.msg('must supply an "Gaussian version" e.g,, version=03/09/16', 'a') + self.msg('must supply an "Version Number", e.g,, version=%s' % '/'.join(verslist), 'a') - try: - os.makedirs(prefix) - self.msg("The %s directory does not exist,and it will be created." % prefix, 'w') - except FileExistsError: - pass + softname = args[0].split('-')[0] + - if not os.path.exists(envs): - os.makedirs(envs) + self.create_dirs(prefix, source, envs, version, softname, suffname, dirsname) - if version == '03': - if ext in ['d01']: - basename = 'g03-d01' - else: - basename = 'g03-std' + self.build(prefix, softname) + self.clean() - elif version == '09': - basename = 'g09-%s' % ext.lower() + def build(self, prefix, softname): + """Start build the software.""" + self.cwd = os.getcwd() - elif version == '16': - basename = 'g16-a03' - - else: - self.msg('version error, must is 03/09/16', 'a') - - filename = '%s.tar.bz2' % basename + names = os.listdir(self.tmpdirs) + if self.basename not in names: + self.msg('Unpack the file from the %s to the %s directory.' % (self.filename, prefix)) + os.system('tar -xf %s -C %s' % (self.source, self.prefix)) - pathname = 'Gaussian%s' % version - softname = os.path.join(source, 'hpcsoft/Gaussian', pathname, filename) - - if not os.path.exists(softname): - self.msg('The "%s" not found.' % softname, 'a') - - gaussian = os.path.join(prefix, basename) - - - softlist = os.listdir(prefix) - if basename in softlist: - self.msg('The %s already exists,to reinstall it, remove it first.' % gaussian) - else: - self.msg('Start installing the %s software to the %s directory...' % (basename, prefix)) - os.system('tar -xf %s -C %s' % (softname, prefix)) - - gsenv = os.path.join(envs, '%s-env.sh' % basename) - with open(gsenv, 'w') as f: + with open(self.envfile, 'w') as f: f.write('#!/bin/sh\n') - f.write('#\n# %s env config\n#\n\n' % gaussian) - f.write('export g%sroot=%s/%s\n' % (version, prefix, basename)) - f.write('source $g%sroot/g%s/bsd/g%s.profile\n\n' % (version, version, version)) - f.write('export GAUSS_SCDIR=~/gstmp\n') + f.write('#\n# %s env config\n#\n\n' % self.basename) + f.write('export %sroot=%s/%s\n' % (softname, self.prefix, self.basename)) + f.write('source $%sroot/%s/bsd/%s.profile\n' % (softname, softname, softname)) + f.write('export GAUSS_SCDIR=~/gstmp\n\n') + f.write('[ -e ~/gstmp ] || mkdir -p ~/gstmp\n\n') # create shared user and group. self.msg('') self.msg('--------------------------------------------------------') - self.msg('Create a shared group to run the %s software.' % basename) + self.msg('Create a shared group to run the %s software.' % self.basename) self.msg(' 1, groupadd -g 888 public ') self.msg(' 2, usermod -G public dell ') - self.msg(' 3, chown -R root:public %s/%s' % (prefix, basename)) + self.msg(' 3, chown -R root:public %s' % self.prefix) self.msg('--------------------------------------------------------') self.msg('') - self.msg(' source %s' % gsenv) + self.msg(' source %s' % self.envfile) self.msg('--------------------------------------------------------') - + self.msg('') + + + def create_dirs(self, prefix, source, envs, version, softname, suffname, dirsname): + """Create base build directory.""" + + self.basename = '%s-%s' % (softname, version) + self.filename = '%s.%s' % (self.basename, suffname) + + self.prefix = os.path.join(prefix, 'gaussian') + if not os.path.exists(self.prefix): + os.makedirs(self.prefix) + + self.source = os.path.join(dirsname, self.filename) + if not os.path.exists(self.source): + self.msg('The %s does not exist,please check it.' % self.source, 'a') + + if not os.path.exists(envs): + os.makedirs(envs) + self.envfile = os.path.join(envs, '%s-%s' % (softname, version)) + + self.tmpdirs = os.path.join(prefix, 'tmpdirs', softname) + if not os.path.exists(self.tmpdirs): + os.makedirs(self.tmpdirs) + + def clean(self): + """Clean the install tmp directory.""" + if os.path.exists(self.tmpdirs): + shutil.rmtree(self.tmpdirs) + + + + diff --git a/lib/sunhpc/commands/soft/gromacs/__init__.py b/lib/sunhpc/commands/soft/gromacs/__init__.py index 0a02525..1029ef1 100644 --- a/lib/sunhpc/commands/soft/gromacs/__init__.py +++ b/lib/sunhpc/commands/soft/gromacs/__init__.py @@ -7,6 +7,7 @@ #WebSite : https://www.sunhpc.com import os +import re import sys import sunhpc import shutil @@ -16,170 +17,194 @@ class command(sunhpc.commands.soft.command): class Command(command): """ - Build the Gromacs software. + Compilation and installation of the parallel computing software. - Specifies the software version. e.g,, version=2022.6 + Specifies the software version. e.g,, version=x.x.x + + Specifies the software source path. Default: /mnt/usb + + - Specifies the software install path. - Default: /share/apps/soft/gromacs + Specifies the software install path. Default: /share/apps/soft - Specifies the software env path. - Default: /share/apps/envs + Specifies the environment variable storage path. Default: /share/apps/envs - - Specifies the software source path. e.g,, /mnt/usb - Default: /mnt/usb + + Enable serial. Default: yes - - Enable mpi. Default: No + Enable MPI. Default: yes + + + Enable GPU. Default: yes - - Enable cuda. Default: No - - - - install the gromacs software. + + Build the command line and associated parameters for this software. """ def run(self, params, args): - (prefix, version, source, envs, mpistatus, cudastatus) = self.fillParams([ - ('prefix', '/share/apps/soft/gromacs'), - ('version', None), - ('source', '/mnt/usb'), + (prefix, cudapath, envs, source, version, serial, mpi, gpu) = self.fillParams([ + ('prefix', '/share/apps/soft'), + ('cudapath', '/usr/local/cuda'), ('envs', '/share/apps/envs'), - ('mpi', None), - ('cuda', None), + ('source', '/mnt/usb'), + ('version', None), + ('serial', False), + ('mpi', False), + ('gpu', False), ]) + softname = 'gromacs' + suffname = 'tar.gz' + dirsname = os.path.join(source, 'hpcsoft', 'Gromacs') + verslist = self.getVersions(key=softname, suffix=suffname, dirs=dirsname) + if len(args): version = args[0] if not version: - self.msg('must supply an "Gromacs version" e.g,, version=2022.6, 2023, 2023.2', 'a') + self.msg('must supply an "Version Number", e.g,, version=%s' % '/'.join(verslist), 'a') - try: - os.makedirs(prefix) - self.msg("The %s directory does not exist,and it will be created." % prefix, 'w') - except FileExistsError: - pass + self.create_dirs(prefix, source, envs, version, softname, suffname, dirsname) + + self.build(serial, mpi, gpu, cudapath, envs) + #self.clean() + + def build(self, serial, mpi, gpu, cudapath, envs): + """Start build the software.""" + self.cwd = os.getcwd() + + names = os.listdir(self.tmpdirs) + if self.basename not in names: + self.msg('Unpack the file from the %s to the %s directory.' % (self.filename, self.tmpdirs)) + os.system('tar -xf %s -C %s' % (self.source, self.tmpdirs)) + + build_dirs = os.path.join(self.tmpdirs, self.basename) + os.chdir(build_dirs) + + if serial: + self.build_serial() + + if mpi: + self.build_mpi(envs) + + + # configure envs + self.writeEnvs() + + def build_mpi(self, envs): + self.msg('Starting compile MPI version gromacs...') + + ask_yn = '' + while not ask_yn: + txt = 'The MPI must be loaded before installing the Groamcs mpi version?\n' + txt += '\te.g,, source %s/mpich-xxx, openmpi-xxx' % envs + ask_yn = input('%s: ' % self.message(txt, tag='[+]', end='[n/y]')) + if ask_yn in ['n', 'no']: + sys.exit(0) + + self.preceding() + + cmd = 'cmake .. -DCMAKE_INSTALL_PREFIX=%s ' % self.prefix + cmd += '-DGMX_BUILD_OWN_FFTW=ON ' + cmd += '-DGMX_MPI=ON ' + cmd += '-DREGRESSIONTEST_PATH=%s' % self.regress + os.system(cmd) + os.system('make && make check && make install') + self.clean() + + def build_serial(self): + self.msg('Starting compile serial version gromacs...') + self.preceding() + + cmd = 'cmake .. -DCMAKE_INSTALL_PREFIX=%s ' % self.prefix + cmd += '-DGMX_BUILD_OWN_FFTW=ON ' + cmd += '-DREGRESSIONTEST_PATH=%s' % self.regress + os.system(cmd) + os.system('make && make check && make install') + + def preceding(self): + + # /share/apps/soft/tmpdirs/gromacs/gromacs-2022.6/build + if os.path.exists(self.builder): + shutil.rmtree(self.builder) + + # mkdir build/src/external/build-fftw/fftwBuild-prefix/src + os.makedirs(self.fftwdir) + + # Copy FFTW to src dirs + shutil.copyfile(self.fftwsrc, self.fftwdst) + + # Decompress regressiontests + os.system('tar -xf %s -C %s' % (self.regrsrc, self.builder)) + + os.chdir(self.builder) + + def create_dirs(self, prefix, source, envs, version, softname, suffname, dirsname): + """Create base build directory.""" + + self.basename = '%s-%s' % (softname, version) + self.filename = '%s.%s' % (self.basename, suffname) + + self.prefix = os.path.join(prefix, softname, version) + if not os.path.exists(self.prefix): + os.makedirs(self.prefix) + + self.source = os.path.join(dirsname, self.filename) + if not os.path.exists(self.source): + self.msg('The %s does not exist,please check it.' % self.source, 'a') if not os.path.exists(envs): os.makedirs(envs) + self.envfile = os.path.join(envs, '%s-%s' % (softname, version)) - basename = 'gromacs-%s' % version - filename = '%s.tar.gz' % basename + self.tmpdirs = os.path.join(prefix, 'tmpdirs', softname) + if not os.path.exists(self.tmpdirs): + os.makedirs(self.tmpdirs) - softname = os.path.join(source, 'hpcsoft/Gromacs', filename) - if not os.path.exists(softname): - self.msg('The "%s" not found.' % softname, 'a') + self.builder = os.path.join(self.tmpdirs, self.basename, 'build') - destname = os.path.join(prefix, version) - self.msg('Start decompress the %s software to the /tmp directory...' % basename) - - tmpdir = os.path.join(os.sep, 'tmp', basename) - #if os.path.exists(tmpdir): - # os.system('rm -rf /tmp/%s' % basename) - #os.system('tar -xf %s -C /tmp' % softname) + self.fftwdir = os.path.join(self.builder, 'src/external/build-fftw/fftwBuild-prefix/src') + self.fftwsrc = os.path.join(source, 'hpcsoft', 'fftw', 'fftw-3.3.8.tar.gz') + self.fftwdst = os.path.join(self.fftwdir, 'fftw-3.3.8.tar.gz') - # chdir to /tmp/gromacs-version - os.chdir(tmpdir) - cwd = os.getcwd() + self.regrsrc = os.path.join(source, 'hpcsoft', 'Gromacs', 'regressiontests-%s.%s' % (version, suffname)) + self.regress = os.path.join(self.builder, 'regressiontests-%s' % (version)) - cmake = shutil.which('cmake') - try: - os.makedirs('build/src/external/build-fftw/fftwBuild-prefix/src') - except FileExistsError: - pass - - # copy fftw to src dirs - srcfile = os.path.join(source, 'hpcsoft', 'fftw', 'fftw-3.3.8.tar.gz') - dstfile = 'build/src/external/build-fftw/fftwBuild-prefix/src/fftw-3.3.8.tar.gz' - shutil.copyfile(srcfile, dstfile) - - - regname = 'regressiontests-%s' % version - regfile = os.path.join(source, 'hpcsoft', 'Gromacs', '%s.tar.gz' % regname) - regpath = os.path.join(tmpdir, 'build', regname) - if os.path.exists(regpath): - shutil.rmtree(regpath) - - os.system('tar -xf %s -C build/' % regfile) - os.chdir('build') - - self.build_serial(destname, regname) - if mpistatus: - mpirun = shutil.which('mpirun') - if not mpirun: - self.msg('mpirun command not found.please install an mpirun software.', 'a') - self.build_mpirun(destname, regname) - - if cudastatus: - if not cudapath: - self.msg('must supply an CUDA Path. e.g,, cuda=/usr/local/cuda', 'a') - self.build_nvidia(destname, regname, cudapath) - - - gsenv = os.path.join(envs, '%s-env.sh' % basename) - with open(gsenv, 'w') as f: + def writeEnvs(self): + with open(self.envfile, 'w') as f: f.write('#!/bin/sh\n') - f.write('#\n# %s env config\n#\n\n' % basename) - f.write('source %s/bin/GMXRC\n' % destname) + f.write('#\n# %s env config\n#\n\n' % self.basename) + f.write('source %s/bin/GMXRC\n' % (self.prefix)) # create shared user and group. self.msg('') self.msg('--------------------------------------------------------') - self.msg('Create a shared group to run the %s software.' % basename) + self.msg('Create a shared group to run the %s software.' % self.basename) self.msg(' 1, groupadd -g 888 public ') self.msg(' 2, usermod -G public dell ') - self.msg(' 3, chown -R root:public %s' % destname)) + self.msg(' 3, chown -R root:public %s' % self.prefix) self.msg('--------------------------------------------------------') self.msg('') - self.msg(' source %s' % gsenv) + self.msg(' source %s' % self.envfile) self.msg('--------------------------------------------------------') - os.system('source %s' % gsenv) - os.system('gmx -version') + def clean(self): + """Clean the install tmp directory.""" + if os.path.exists(self.tmpdirs): + shutil.rmtree(self.tmpdirs) - def build_serial(self, destname, regname): - query = 'cmake .. -DCMAKE_INSTALL_PREFIX=%s ' % destname - query += '-DGMX_BUILD_OWN_FFTW=ON ' - query += '-DREGRESSIONTEST_PATH=%s' % regname - os.system(query) - os.system('make && make check && make install') - - def build_mpirun(self, destname, regname): - query = 'cmake .. -DCMAKE_INSTALL_PREFIX=%s ' % destname - query += '-DGMX_BUILD_OWN_FFTW=ON ' - query += '-DGMX_MPI=ON ' - query += '-DREGRESSIONTEST_PATH=%s' % regname - os.system(query) - os.system('make && make check && make install') - - def build_nvidia(self, destname, regname, cudapath): - query = 'cmake .. -DCMAKE_INSTALL_PREFIX=%s ' % destname - query += '-DGMX_BUILD_OWN_FFTW=ON ' - query += '-DGMX_GPU=CUDA ' # NVIDIA CUDA support enabled - query += '-DCUDA_TOOLKIT_ROOT_DIR=%s' % cudapath - #query += '-DGMX_GPU=OpenCL ' # OpenCL support enabled - #query += '-DGMX_GPU=SYCL ' # using Intel oneAPI DPC++ by default. - #query += '-DGMX_SYCL_HIPSYCL=ON ' - #query += '-DGMX_DOUBLE=on ' - #query += '-DGMX_SIMD=xxx ' # specify the level of SIMD support - #query += '-DBUILD_SHARED_LIBS=off ' - query += '-DREGRESSIONTEST_PATH=%s' % regname - os.system(query) - os.system('make && make check && make install') + diff --git a/lib/sunhpc/commands/soft/mpi/__init__.py b/lib/sunhpc/commands/soft/mpi/__init__.py new file mode 100644 index 0000000..8c0ff23 --- /dev/null +++ b/lib/sunhpc/commands/soft/mpi/__init__.py @@ -0,0 +1,158 @@ +# +#coding:utf-8 +# +#Author : QCSun +#Email : qcsun@sunhpc.com +#Times : 2023-04-14 05:21:02 +#WebSite : https://www.sunhpc.com + +import os +import re +import sys +import sunhpc +import shutil + +class command(sunhpc.commands.soft.command): + pass + +class Command(command): + """ + Compilation and installation of the parallel computing software. + + + Specifies the software version. e.g,, version=3.2 + + + + Specifies the software source path. Default: /mnt/usb + + + + Specifies the software install path. Default: /share/apps/soft + + + + Specifies the environment variable storage path. Default: /share/apps/envs + + + + Build the command line and associated parameters for this software. + + """ + def run(self, params, args): + + (prefix, source, envs, version) = self.fillParams([ + ('prefix', '/share/apps/soft'), + ('source', '/mnt/usb'), + ('envs', '/share/apps/envs'), + ('version', None), + ]) + + softname = 'mpich' + suffname = 'tar.gz' + dirsname = os.path.join(source, 'hpcsoft', 'MPI', 'MPICH3') + verslist = self.getVersions(key=softname, suffix=suffname, dirs=dirsname) + + if len(args): + version = args[0] + + if not version: + self.msg('must supply an "Version Number", e.g,, version=%s' % '/'.join(verslist), 'a') + + self.create_dirs(prefix, source, envs, version, softname, suffname, dirsname) + + self.build() + self.clean() + + def build(self): + """Start build the software.""" + self.cwd = os.getcwd() + + names = os.listdir(self.tmpdirs) + if self.basename not in names: + self.msg('Unpack the file from the %s to the %s directory.' % (self.filename, self.tmpdirs)) + os.system('tar -xf %s -C %s' % (self.source, self.tmpdirs)) + + build_dirs = os.path.join(self.tmpdirs, self.basename) + os.chdir(build_dirs) + + # make + cmd = './configure --prefix=%s' % self.prefix + os.system(cmd) + os.system('make && make install') + + with open(self.envfile, 'w') as f: + f.write('#!/bin/sh\n') + f.write('#\n# %s env config\n#\n\n' % self.basename) + f.write('export PATH=%s/bin:$PATH\n' % (self.prefix)) + + # create shared user and group. + self.msg('') + self.msg('--------------------------------------------------------') + self.msg('Create a shared group to run the %s software.' % self.basename) + self.msg(' 1, groupadd -g 888 public ') + self.msg(' 2, usermod -G public dell ') + self.msg(' 3, chown -R root:public %s' % self.prefix) + self.msg('--------------------------------------------------------') + self.msg('') + self.msg(' source %s' % self.envfile) + self.msg('--------------------------------------------------------') + + + def create_dirs(self, prefix, source, envs, version, softname, suffname, dirsname): + """Create base build directory.""" + + self.basename = '%s-%s' % (softname, version) + self.filename = '%s.%s' % (self.basename, suffname) + + self.prefix = os.path.join(prefix, softname, version) + if not os.path.exists(self.prefix): + os.makedirs(self.prefix) + + self.source = os.path.join(dirsname, self.filename) + if not os.path.exists(self.source): + self.msg('The %s does not exist,please check it.' % self.source, 'a') + + if not os.path.exists(envs): + os.makedirs(envs) + self.envfile = os.path.join(envs, '%s-%s.env' % (softname, version)) + + self.tmpdirs = os.path.join(prefix, 'tmpdirs', softname) + if not os.path.exists(self.tmpdirs): + os.makedirs(self.tmpdirs) + + def clean(self): + """Clean the install tmp directory.""" + if os.path.exists(self.tmpdirs): + shutil.rmtree(self.tmpdirs) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/sunhpc/commands/soft/ntfs/__init__.py b/lib/sunhpc/commands/soft/ntfs/__init__.py new file mode 100644 index 0000000..d78a6cf --- /dev/null +++ b/lib/sunhpc/commands/soft/ntfs/__init__.py @@ -0,0 +1,149 @@ +# +#coding:utf-8 +# +#Author : QCSun +#Email : qcsun@sunhpc.com +#Times : 2023-04-14 05:21:02 +#WebSite : https://www.sunhpc.com + +import os +import re +import sys +import sunhpc +import shutil + +class command(sunhpc.commands.soft.command): + pass + +class Command(command): + """ + Compilation and installation of the parallel computing software. + + + Specifies the software version. e.g,, version=3.2 + + + + Specifies the software source path. Default: /mnt/usb + + + + Specifies the software install path. Default: /share/apps/soft + + + + Specifies the environment variable storage path. Default: /share/apps/envs + + + + Build the command line and associated parameters for this software. + + """ + def run(self, params, args): + + (prefix, source, envs, version) = self.fillParams([ + ('prefix', '/share/apps/soft'), + ('source', '/mnt/usb'), + ('envs', '/share/apps/envs'), + ('version', None), + ]) + + softname = 'ntfs3g' + suffname = 'tar.gz' + dirsname = os.path.join(source, 'hpcsoft', 'tools') + verslist = self.getVersions(key=softname, suffix=suffname, dirs=dirsname) + + if len(args): + version = args[0] + + if not version: + self.msg('must supply an "Version Number", e.g,, version=%s' % '/'.join(verslist), 'a') + + self.create_dirs(prefix, source, envs, version, softname, suffname, dirsname) + + self.build() + self.clean() + + def build(self): + """Start build the software.""" + self.cwd = os.getcwd() + + names = os.listdir(self.tmpdirs) + if self.basename not in names: + self.msg('Unpack the file from the %s to the %s directory.' % (self.filename, self.tmpdirs)) + os.system('tar -xf %s -C %s' % (self.source, self.tmpdirs)) + + build_dirs = os.path.join(self.tmpdirs, self.basename) + os.chdir(build_dirs) + + # make + cmd = './configure ' + os.system(cmd) + os.system('make && make install') + + with open('/sbin/mount.ntfs', 'w') as f: + f.write('#!/bin/sh\n') + f.write('#\n# %s env config\n#\n\n' % self.basename) + f.write('export LANG=en_US.UTF-8\n') + f.write('exec /sbin/mount.ntfs-3g "$@"\n') + + if os.path.exists('/sbin/mount.ntfs'): + os.system('chmod 755 /sbin/mount.ntfs') + + def create_dirs(self, prefix, source, envs, version, softname, suffname, dirsname): + """Create base build directory.""" + + self.basename = '%s-%s' % (softname, version) + self.filename = '%s.%s' % (self.basename, suffname) + + self.prefix = os.path.join(prefix, softname, version) + if not os.path.exists(self.prefix): + os.makedirs(self.prefix) + + self.source = os.path.join(dirsname, self.filename) + if not os.path.exists(self.source): + self.msg('The %s does not exist,please check it.' % self.source, 'a') + + if not os.path.exists(envs): + os.makedirs(envs) + self.envfile = os.path.join(envs, '%s-%s.env' % (softname, version)) + + self.tmpdirs = os.path.join(prefix, 'tmpdirs', softname) + if not os.path.exists(self.tmpdirs): + os.makedirs(self.tmpdirs) + + def clean(self): + """Clean the install tmp directory.""" + if os.path.exists(self.tmpdirs): + shutil.rmtree(self.tmpdirs) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/sunhpc/commands/soft/nvidia/__init__.py b/lib/sunhpc/commands/soft/nvidia/__init__.py new file mode 100644 index 0000000..2786147 --- /dev/null +++ b/lib/sunhpc/commands/soft/nvidia/__init__.py @@ -0,0 +1,152 @@ +# +#coding:utf-8 +# +#Author : QCSun +#Email : qcsun@sunhpc.com +#Times : 2023-04-14 05:21:02 +#WebSite : https://www.sunhpc.com + +import os +import re +import sys +import sunhpc +import shutil + +class command(sunhpc.commands.soft.command): + pass + +class Command(command): + """ + Compilation and installation of the parallel computing software. + + + Specifies the software version. e.g,, version=x.x.x + + + + Specifies the software source path. Default: /mnt/usb + + + + Specifies the software install path. Default: /share/apps/soft + + + + Specifies the environment variable storage path. Default: /share/apps/envs + + + + Build the command line and associated parameters for this software. + + """ + def run(self, params, args): + + (prefix, source, envs, version) = self.fillParams([ + ('prefix', '/share/apps/soft'), + ('source', '/mnt/usb'), + ('envs', '/share/apps/envs'), + ('version', None), + ]) + + softname = 'cmake' + suffname = 'sh' + dirsname = os.path.join(source, 'hpcsoft', 'Cmake') + verslist = self.getVersions(key=softname, suffix=suffname, dirs=dirsname) + + if len(args): + version = args[0] + + if not version: + self.msg('must supply an "Version Number", e.g,, version=%s' % '/'.join(verslist), 'a') + + self.create_dirs(prefix, source, envs, version, softname, suffname, dirsname) + + self.build(prefix) + self.clean() + + def build(self, prefix): + """Start build the software.""" + self.cwd = os.getcwd() + + names = os.listdir(self.tmpdirs) + if self.basename not in names: + self.msg('Unpack the file from the %s to the %s directory.' % (self.filename, prefix)) + print ('----> sh %s --prefix=%s --skip-license' % (self.source, self.prefix)) + os.system('sh %s --prefix=%s --skip-license' % (self.source, self.prefix)) + + + with open(self.envfile, 'w') as f: + f.write('#!/bin/sh\n') + f.write('#\n# %s env config\n#\n\n' % self.basename) + f.write('export PATH=%s/bin:$PATH\n' % (self.prefix)) + + # create shared user and group. + self.msg('') + self.msg('--------------------------------------------------------') + self.msg('Create a shared group to run the %s software.' % self.basename) + self.msg(' 1, groupadd -g 888 public ') + self.msg(' 2, usermod -G public dell ') + self.msg(' 3, chown -R root:public %s' % self.prefix) + self.msg('--------------------------------------------------------') + self.msg('') + self.msg(' source %s' % self.envfile) + self.msg('--------------------------------------------------------') + + + def create_dirs(self, prefix, source, envs, version, softname, suffname, dirsname): + """Create base build directory.""" + + self.basename = '%s-%s' % (softname, version) + self.filename = '%s.%s' % (self.basename, suffname) + + self.prefix = os.path.join(prefix, softname, version) + if not os.path.exists(self.prefix): + os.makedirs(self.prefix) + + self.source = os.path.join(dirsname, self.filename) + if not os.path.exists(self.source): + self.msg('The %s does not exist,please check it.' % self.source, 'a') + + if not os.path.exists(envs): + os.makedirs(envs) + self.envfile = os.path.join(envs, '%s-%s' % (softname, version)) + + self.tmpdirs = os.path.join(prefix, 'tmpdirs', softname) + if not os.path.exists(self.tmpdirs): + os.makedirs(self.tmpdirs) + + def clean(self): + """Clean the install tmp directory.""" + if os.path.exists(self.tmpdirs): + shutil.rmtree(self.tmpdirs) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/sunhpc/commands/soft/openmpi/__init__.py b/lib/sunhpc/commands/soft/openmpi/__init__.py new file mode 100644 index 0000000..a7b39a9 --- /dev/null +++ b/lib/sunhpc/commands/soft/openmpi/__init__.py @@ -0,0 +1,159 @@ +# +#coding:utf-8 +# +#Author : QCSun +#Email : qcsun@sunhpc.com +#Times : 2023-04-14 05:21:02 +#WebSite : https://www.sunhpc.com + +import os +import re +import sys +import sunhpc +import shutil + +class command(sunhpc.commands.soft.command): + pass + +class Command(command): + """ + Compilation and installation of the parallel computing software. + + + Specifies the software version. e.g,, version=3.2 + + + + Specifies the software source path. Default: /mnt/usb + + + + Specifies the software install path. Default: /share/apps/soft + + + + Specifies the environment variable storage path. Default: /share/apps/envs + + + + Build the command line and associated parameters for this software. + + """ + def run(self, params, args): + + (prefix, source, envs, version) = self.fillParams([ + ('prefix', '/share/apps/soft'), + ('source', '/mnt/usb'), + ('envs', '/share/apps/envs'), + ('version', None), + ]) + + softname = 'openmpi' + suffname = 'tar.gz' + dirsname = os.path.join(source, 'hpcsoft', 'MPI', 'OpenMPI') + verslist = self.getVersions(key=softname, suffix=suffname, dirs=dirsname) + + if len(args): + version = args[0] + + if not version: + self.msg('must supply an "Version Number", e.g,, version=%s' % '/'.join(verslist), 'a') + + self.create_dirs(prefix, source, envs, version, softname, suffname, dirsname) + + self.build() + self.clean() + + def build(self): + """Start build the software.""" + self.cwd = os.getcwd() + + names = os.listdir(self.tmpdirs) + if self.basename not in names: + self.msg('Unpack the file from the %s to the %s directory.' % (self.filename, self.tmpdirs)) + os.system('tar -xf %s -C %s' % (self.source, self.tmpdirs)) + + build_dirs = os.path.join(self.tmpdirs, self.basename) + os.chdir(build_dirs) + + # make + cmd = './configure --prefix=%s ' % self.prefix + cmd += '--enable-pretty-print-stacktrace --enable-orterun-prefix-by-default' + os.system(cmd) + os.system('make && make install') + + with open(self.envfile, 'w') as f: + f.write('#!/bin/sh\n') + f.write('#\n# %s env config\n#\n\n' % self.basename) + f.write('export PATH=%s/bin:$PATH\n' % (self.prefix)) + + # create shared user and group. + self.msg('') + self.msg('--------------------------------------------------------') + self.msg('Create a shared group to run the %s software.' % self.basename) + self.msg(' 1, groupadd -g 888 public ') + self.msg(' 2, usermod -G public dell ') + self.msg(' 3, chown -R root:public %s' % self.prefix) + self.msg('--------------------------------------------------------') + self.msg('') + self.msg(' source %s' % self.envfile) + self.msg('--------------------------------------------------------') + + + def create_dirs(self, prefix, source, envs, version, softname, suffname, dirsname): + """Create base build directory.""" + + self.basename = '%s-%s' % (softname, version) + self.filename = '%s.%s' % (self.basename, suffname) + + self.prefix = os.path.join(prefix, softname, version) + if not os.path.exists(self.prefix): + os.makedirs(self.prefix) + + self.source = os.path.join(dirsname, self.filename) + if not os.path.exists(self.source): + self.msg('The %s does not exist,please check it.' % self.source, 'a') + + if not os.path.exists(envs): + os.makedirs(envs) + self.envfile = os.path.join(envs, '%s-%s.env' % (softname, version)) + + self.tmpdirs = os.path.join(prefix, 'tmpdirs', softname) + if not os.path.exists(self.tmpdirs): + os.makedirs(self.tmpdirs) + + def clean(self): + """Clean the install tmp directory.""" + if os.path.exists(self.tmpdirs): + shutil.rmtree(self.tmpdirs) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/sunhpc/commands/soft/schrodinger/__init__.py b/lib/sunhpc/commands/soft/schrodinger/__init__.py new file mode 100644 index 0000000..056a5af --- /dev/null +++ b/lib/sunhpc/commands/soft/schrodinger/__init__.py @@ -0,0 +1,170 @@ +# +#coding:utf-8 +# +#Author : QCSun +#Email : qcsun@sunhpc.com +#Times : 2023-04-14 05:21:02 +#WebSite : https://www.sunhpc.com + +import os +import re +import sys +import sunhpc +import shutil + +class command(sunhpc.commands.soft.command): + pass + +class Command(command): + """ + Compilation and installation of the parallel computing software. + + + Specifies the software version. e.g,, version=x.x.x + + + + Specifies the software source path. Default: /mnt/usb + + + + Specifies the software install path. Default: /share/apps/soft + + + + Specifies the environment variable storage path. Default: /share/apps/envs + + + + Build the command line and associated parameters for this software. + + """ + def run(self, params, args): + + (prefix, source, envs, version) = self.fillParams([ + ('prefix', '/share/apps/soft'), + ('source', '/mnt/usb'), + ('envs', '/share/apps/envs'), + ('version', None), + ]) + + softname = 'schrodinger' + suffname = 'tar.gz' + dirsname = os.path.join(source, 'hpcsoft', 'Schrodinger') + verslist = self.getVersions(key=softname, suffix=suffname, dirs=dirsname) + + if len(args): + version = args[0] + + if not version: + self.msg('must supply an "Version Number", e.g,, version=%s' % '/'.join(verslist), 'a') + + self.create_dirs(prefix, source, envs, version, softname, suffname, dirsname) + + self.build(prefix) + #self.clean() + + def build(self, prefix): + """Start build the software.""" + self.cwd = os.getcwd() + + names = os.listdir(self.tmpdirs) + if self.basename not in names: + self.msg('Unpack the file from the %s to the %s directory.' % (self.filename, prefix)) + os.system('tar -xf %s -C %s' % (self.source, self.tmpdirs)) + + cmd = 'sh %s/INSTALL ' % self.distri_dirs + cmd += '-s %s ' % self.prefix + cmd += '-t %s/trirdparty ' % self.prefix + cmd += '-k %s -m ' % self.scratch + os.system(cmd) + + # copy patcher to self.prefix + patcher_src = os.path.join(self.distri_dirs, 'patcher') + patcher_dst = os.path.join(self.prefix, 'patcher') + shutil.copyfile(patcher_src, patcher_dst) + + with open(self.envfile, 'w') as f: + f.write('#!/bin/sh\n') + f.write('#\n# %s env config\n#\n\n' % self.basename) + f.write('export PATH=%s:%s/utilities:$PATH\n' % (self.prefix, self.prefix)) + f.write('export SCHRODINGER=%s\n' % (self.prefix)) + f.write('# export LD_LICENSE_FILE=27000@xxx.xxx.xxx\n\n') + + # create shared user and group. + self.msg('') + self.msg('--------------------------------------------------------') + self.msg('Create a shared group to run the %s software.' % self.basename) + self.msg(' 1, groupadd -g 888 public ') + self.msg(' 2, usermod -G public dell ') + self.msg(' 3, chown -R root:public %s' % self.prefix) + self.msg('--------------------------------------------------------') + self.msg('') + self.msg(' source %s' % self.envfile) + self.msg('--------------------------------------------------------') + + + def create_dirs(self, prefix, source, envs, version, softname, suffname, dirsname): + """Create base build directory.""" + + self.basename = '%s-%s' % (softname, version) + self.filename = '%s.%s' % (self.basename, suffname) + + self.prefix = os.path.join(prefix, softname, version) + if not os.path.exists(self.prefix): + os.makedirs(self.prefix) + + self.scratch = os.path.join(prefix, 'scratch', softname) + if not os.path.exists(self.scratch): + os.makedirs(self.scratch) + os.chmod(self.scratch, 0o777) + + self.source = os.path.join(dirsname, self.filename) + if not os.path.exists(self.source): + self.msg('The %s does not exist,please check it.' % self.source, 'a') + + if not os.path.exists(envs): + os.makedirs(envs) + self.envfile = os.path.join(envs, '%s-%s' % (softname, version)) + + self.tmpdirs = os.path.join(prefix, 'tmpdirs', softname) + if not os.path.exists(self.tmpdirs): + os.makedirs(self.tmpdirs) + + self.distri_dirs = os.path.join(self.tmpdirs, self.basename) + + def clean(self): + """Clean the install tmp directory.""" + if os.path.exists(self.tmpdirs): + shutil.rmtree(self.tmpdirs) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/yaml/__init__.py b/lib/yaml/__init__.py new file mode 100644 index 0000000..8249361 --- /dev/null +++ b/lib/yaml/__init__.py @@ -0,0 +1,390 @@ + +from .error import * + +from .tokens import * +from .events import * +from .nodes import * + +from .loader import * +from .dumper import * + +__version__ = '6.0.1' +try: + from .cyaml import * + __with_libyaml__ = True +except ImportError: + __with_libyaml__ = False + +import io + +#------------------------------------------------------------------------------ +# XXX "Warnings control" is now deprecated. Leaving in the API function to not +# break code that uses it. +#------------------------------------------------------------------------------ +def warnings(settings=None): + if settings is None: + return {} + +#------------------------------------------------------------------------------ +def scan(stream, Loader=Loader): + """ + Scan a YAML stream and produce scanning tokens. + """ + loader = Loader(stream) + try: + while loader.check_token(): + yield loader.get_token() + finally: + loader.dispose() + +def parse(stream, Loader=Loader): + """ + Parse a YAML stream and produce parsing events. + """ + loader = Loader(stream) + try: + while loader.check_event(): + yield loader.get_event() + finally: + loader.dispose() + +def compose(stream, Loader=Loader): + """ + Parse the first YAML document in a stream + and produce the corresponding representation tree. + """ + loader = Loader(stream) + try: + return loader.get_single_node() + finally: + loader.dispose() + +def compose_all(stream, Loader=Loader): + """ + Parse all YAML documents in a stream + and produce corresponding representation trees. + """ + loader = Loader(stream) + try: + while loader.check_node(): + yield loader.get_node() + finally: + loader.dispose() + +def load(stream, Loader): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + """ + loader = Loader(stream) + try: + return loader.get_single_data() + finally: + loader.dispose() + +def load_all(stream, Loader): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + """ + loader = Loader(stream) + try: + while loader.check_data(): + yield loader.get_data() + finally: + loader.dispose() + +def full_load(stream): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + + Resolve all tags except those known to be + unsafe on untrusted input. + """ + return load(stream, FullLoader) + +def full_load_all(stream): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + + Resolve all tags except those known to be + unsafe on untrusted input. + """ + return load_all(stream, FullLoader) + +def safe_load(stream): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + + Resolve only basic YAML tags. This is known + to be safe for untrusted input. + """ + return load(stream, SafeLoader) + +def safe_load_all(stream): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + + Resolve only basic YAML tags. This is known + to be safe for untrusted input. + """ + return load_all(stream, SafeLoader) + +def unsafe_load(stream): + """ + Parse the first YAML document in a stream + and produce the corresponding Python object. + + Resolve all tags, even those known to be + unsafe on untrusted input. + """ + return load(stream, UnsafeLoader) + +def unsafe_load_all(stream): + """ + Parse all YAML documents in a stream + and produce corresponding Python objects. + + Resolve all tags, even those known to be + unsafe on untrusted input. + """ + return load_all(stream, UnsafeLoader) + +def emit(events, stream=None, Dumper=Dumper, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None): + """ + Emit YAML parsing events into a stream. + If stream is None, return the produced string instead. + """ + getvalue = None + if stream is None: + stream = io.StringIO() + getvalue = stream.getvalue + dumper = Dumper(stream, canonical=canonical, indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break) + try: + for event in events: + dumper.emit(event) + finally: + dumper.dispose() + if getvalue: + return getvalue() + +def serialize_all(nodes, stream=None, Dumper=Dumper, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None): + """ + Serialize a sequence of representation trees into a YAML stream. + If stream is None, return the produced string instead. + """ + getvalue = None + if stream is None: + if encoding is None: + stream = io.StringIO() + else: + stream = io.BytesIO() + getvalue = stream.getvalue + dumper = Dumper(stream, canonical=canonical, indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break, + encoding=encoding, version=version, tags=tags, + explicit_start=explicit_start, explicit_end=explicit_end) + try: + dumper.open() + for node in nodes: + dumper.serialize(node) + dumper.close() + finally: + dumper.dispose() + if getvalue: + return getvalue() + +def serialize(node, stream=None, Dumper=Dumper, **kwds): + """ + Serialize a representation tree into a YAML stream. + If stream is None, return the produced string instead. + """ + return serialize_all([node], stream, Dumper=Dumper, **kwds) + +def dump_all(documents, stream=None, Dumper=Dumper, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + """ + Serialize a sequence of Python objects into a YAML stream. + If stream is None, return the produced string instead. + """ + getvalue = None + if stream is None: + if encoding is None: + stream = io.StringIO() + else: + stream = io.BytesIO() + getvalue = stream.getvalue + dumper = Dumper(stream, default_style=default_style, + default_flow_style=default_flow_style, + canonical=canonical, indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break, + encoding=encoding, version=version, tags=tags, + explicit_start=explicit_start, explicit_end=explicit_end, sort_keys=sort_keys) + try: + dumper.open() + for data in documents: + dumper.represent(data) + dumper.close() + finally: + dumper.dispose() + if getvalue: + return getvalue() + +def dump(data, stream=None, Dumper=Dumper, **kwds): + """ + Serialize a Python object into a YAML stream. + If stream is None, return the produced string instead. + """ + return dump_all([data], stream, Dumper=Dumper, **kwds) + +def safe_dump_all(documents, stream=None, **kwds): + """ + Serialize a sequence of Python objects into a YAML stream. + Produce only basic YAML tags. + If stream is None, return the produced string instead. + """ + return dump_all(documents, stream, Dumper=SafeDumper, **kwds) + +def safe_dump(data, stream=None, **kwds): + """ + Serialize a Python object into a YAML stream. + Produce only basic YAML tags. + If stream is None, return the produced string instead. + """ + return dump_all([data], stream, Dumper=SafeDumper, **kwds) + +def add_implicit_resolver(tag, regexp, first=None, + Loader=None, Dumper=Dumper): + """ + Add an implicit scalar detector. + If an implicit scalar value matches the given regexp, + the corresponding tag is assigned to the scalar. + first is a sequence of possible initial characters or None. + """ + if Loader is None: + loader.Loader.add_implicit_resolver(tag, regexp, first) + loader.FullLoader.add_implicit_resolver(tag, regexp, first) + loader.UnsafeLoader.add_implicit_resolver(tag, regexp, first) + else: + Loader.add_implicit_resolver(tag, regexp, first) + Dumper.add_implicit_resolver(tag, regexp, first) + +def add_path_resolver(tag, path, kind=None, Loader=None, Dumper=Dumper): + """ + Add a path based resolver for the given tag. + A path is a list of keys that forms a path + to a node in the representation tree. + Keys can be string values, integers, or None. + """ + if Loader is None: + loader.Loader.add_path_resolver(tag, path, kind) + loader.FullLoader.add_path_resolver(tag, path, kind) + loader.UnsafeLoader.add_path_resolver(tag, path, kind) + else: + Loader.add_path_resolver(tag, path, kind) + Dumper.add_path_resolver(tag, path, kind) + +def add_constructor(tag, constructor, Loader=None): + """ + Add a constructor for the given tag. + Constructor is a function that accepts a Loader instance + and a node object and produces the corresponding Python object. + """ + if Loader is None: + loader.Loader.add_constructor(tag, constructor) + loader.FullLoader.add_constructor(tag, constructor) + loader.UnsafeLoader.add_constructor(tag, constructor) + else: + Loader.add_constructor(tag, constructor) + +def add_multi_constructor(tag_prefix, multi_constructor, Loader=None): + """ + Add a multi-constructor for the given tag prefix. + Multi-constructor is called for a node if its tag starts with tag_prefix. + Multi-constructor accepts a Loader instance, a tag suffix, + and a node object and produces the corresponding Python object. + """ + if Loader is None: + loader.Loader.add_multi_constructor(tag_prefix, multi_constructor) + loader.FullLoader.add_multi_constructor(tag_prefix, multi_constructor) + loader.UnsafeLoader.add_multi_constructor(tag_prefix, multi_constructor) + else: + Loader.add_multi_constructor(tag_prefix, multi_constructor) + +def add_representer(data_type, representer, Dumper=Dumper): + """ + Add a representer for the given type. + Representer is a function accepting a Dumper instance + and an instance of the given data type + and producing the corresponding representation node. + """ + Dumper.add_representer(data_type, representer) + +def add_multi_representer(data_type, multi_representer, Dumper=Dumper): + """ + Add a representer for the given type. + Multi-representer is a function accepting a Dumper instance + and an instance of the given data type or subtype + and producing the corresponding representation node. + """ + Dumper.add_multi_representer(data_type, multi_representer) + +class YAMLObjectMetaclass(type): + """ + The metaclass for YAMLObject. + """ + def __init__(cls, name, bases, kwds): + super(YAMLObjectMetaclass, cls).__init__(name, bases, kwds) + if 'yaml_tag' in kwds and kwds['yaml_tag'] is not None: + if isinstance(cls.yaml_loader, list): + for loader in cls.yaml_loader: + loader.add_constructor(cls.yaml_tag, cls.from_yaml) + else: + cls.yaml_loader.add_constructor(cls.yaml_tag, cls.from_yaml) + + cls.yaml_dumper.add_representer(cls, cls.to_yaml) + +class YAMLObject(metaclass=YAMLObjectMetaclass): + """ + An object that can dump itself to a YAML stream + and load itself from a YAML stream. + """ + + __slots__ = () # no direct instantiation, so allow immutable subclasses + + yaml_loader = [Loader, FullLoader, UnsafeLoader] + yaml_dumper = Dumper + + yaml_tag = None + yaml_flow_style = None + + @classmethod + def from_yaml(cls, loader, node): + """ + Convert a representation node to a Python object. + """ + return loader.construct_yaml_object(node, cls) + + @classmethod + def to_yaml(cls, dumper, data): + """ + Convert a Python object to a representation node. + """ + return dumper.represent_yaml_object(cls.yaml_tag, data, cls, + flow_style=cls.yaml_flow_style) + diff --git a/lib/yaml/_yaml.cpython-310-x86_64-linux-gnu.so b/lib/yaml/_yaml.cpython-310-x86_64-linux-gnu.so new file mode 100755 index 0000000000000000000000000000000000000000..d08abe90c1231fd735f69f0fff2fb095f3003594 GIT binary patch literal 2226000 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 z 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

QoiqSm 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 literal 0 HcmV?d00001 diff --git a/lib/yaml/composer.py b/lib/yaml/composer.py new file mode 100644 index 0000000..6d15cb4 --- /dev/null +++ b/lib/yaml/composer.py @@ -0,0 +1,139 @@ + +__all__ = ['Composer', 'ComposerError'] + +from .error import MarkedYAMLError +from .events import * +from .nodes import * + +class ComposerError(MarkedYAMLError): + pass + +class Composer: + + def __init__(self): + self.anchors = {} + + def check_node(self): + # Drop the STREAM-START event. + if self.check_event(StreamStartEvent): + self.get_event() + + # If there are more documents available? + return not self.check_event(StreamEndEvent) + + def get_node(self): + # Get the root node of the next document. + if not self.check_event(StreamEndEvent): + return self.compose_document() + + def get_single_node(self): + # Drop the STREAM-START event. + self.get_event() + + # Compose a document if the stream is not empty. + document = None + if not self.check_event(StreamEndEvent): + document = self.compose_document() + + # Ensure that the stream contains no more documents. + if not self.check_event(StreamEndEvent): + event = self.get_event() + raise ComposerError("expected a single document in the stream", + document.start_mark, "but found another document", + event.start_mark) + + # Drop the STREAM-END event. + self.get_event() + + return document + + def compose_document(self): + # Drop the DOCUMENT-START event. + self.get_event() + + # Compose the root node. + node = self.compose_node(None, None) + + # Drop the DOCUMENT-END event. + self.get_event() + + self.anchors = {} + return node + + def compose_node(self, parent, index): + if self.check_event(AliasEvent): + event = self.get_event() + anchor = event.anchor + if anchor not in self.anchors: + raise ComposerError(None, None, "found undefined alias %r" + % anchor, event.start_mark) + return self.anchors[anchor] + event = self.peek_event() + anchor = event.anchor + if anchor is not None: + if anchor in self.anchors: + raise ComposerError("found duplicate anchor %r; first occurrence" + % anchor, self.anchors[anchor].start_mark, + "second occurrence", event.start_mark) + self.descend_resolver(parent, index) + if self.check_event(ScalarEvent): + node = self.compose_scalar_node(anchor) + elif self.check_event(SequenceStartEvent): + node = self.compose_sequence_node(anchor) + elif self.check_event(MappingStartEvent): + node = self.compose_mapping_node(anchor) + self.ascend_resolver() + return node + + def compose_scalar_node(self, anchor): + event = self.get_event() + tag = event.tag + if tag is None or tag == '!': + tag = self.resolve(ScalarNode, event.value, event.implicit) + node = ScalarNode(tag, event.value, + event.start_mark, event.end_mark, style=event.style) + if anchor is not None: + self.anchors[anchor] = node + return node + + def compose_sequence_node(self, anchor): + start_event = self.get_event() + tag = start_event.tag + if tag is None or tag == '!': + tag = self.resolve(SequenceNode, None, start_event.implicit) + node = SequenceNode(tag, [], + start_event.start_mark, None, + flow_style=start_event.flow_style) + if anchor is not None: + self.anchors[anchor] = node + index = 0 + while not self.check_event(SequenceEndEvent): + node.value.append(self.compose_node(node, index)) + index += 1 + end_event = self.get_event() + node.end_mark = end_event.end_mark + return node + + def compose_mapping_node(self, anchor): + start_event = self.get_event() + tag = start_event.tag + if tag is None or tag == '!': + tag = self.resolve(MappingNode, None, start_event.implicit) + node = MappingNode(tag, [], + start_event.start_mark, None, + flow_style=start_event.flow_style) + if anchor is not None: + self.anchors[anchor] = node + while not self.check_event(MappingEndEvent): + #key_event = self.peek_event() + item_key = self.compose_node(node, None) + #if item_key in node.value: + # raise ComposerError("while composing a mapping", start_event.start_mark, + # "found duplicate key", key_event.start_mark) + item_value = self.compose_node(node, item_key) + #node.value[item_key] = item_value + node.value.append((item_key, item_value)) + end_event = self.get_event() + node.end_mark = end_event.end_mark + return node + diff --git a/lib/yaml/constructor.py b/lib/yaml/constructor.py new file mode 100644 index 0000000..619acd3 --- /dev/null +++ b/lib/yaml/constructor.py @@ -0,0 +1,748 @@ + +__all__ = [ + 'BaseConstructor', + 'SafeConstructor', + 'FullConstructor', + 'UnsafeConstructor', + 'Constructor', + 'ConstructorError' +] + +from .error import * +from .nodes import * + +import collections.abc, datetime, base64, binascii, re, sys, types + +class ConstructorError(MarkedYAMLError): + pass + +class BaseConstructor: + + yaml_constructors = {} + yaml_multi_constructors = {} + + def __init__(self): + self.constructed_objects = {} + self.recursive_objects = {} + self.state_generators = [] + self.deep_construct = False + + def check_data(self): + # If there are more documents available? + return self.check_node() + + def check_state_key(self, key): + """Block special attributes/methods from being set in a newly created + object, to prevent user-controlled methods from being called during + deserialization""" + if self.get_state_keys_blacklist_regexp().match(key): + raise ConstructorError(None, None, + "blacklisted key '%s' in instance state found" % (key,), None) + + def get_data(self): + # Construct and return the next document. + if self.check_node(): + return self.construct_document(self.get_node()) + + def get_single_data(self): + # Ensure that the stream contains a single document and construct it. + node = self.get_single_node() + if node is not None: + return self.construct_document(node) + return None + + def construct_document(self, node): + data = self.construct_object(node) + while self.state_generators: + state_generators = self.state_generators + self.state_generators = [] + for generator in state_generators: + for dummy in generator: + pass + self.constructed_objects = {} + self.recursive_objects = {} + self.deep_construct = False + return data + + def construct_object(self, node, deep=False): + if node in self.constructed_objects: + return self.constructed_objects[node] + if deep: + old_deep = self.deep_construct + self.deep_construct = True + if node in self.recursive_objects: + raise ConstructorError(None, None, + "found unconstructable recursive node", node.start_mark) + self.recursive_objects[node] = None + constructor = None + tag_suffix = None + if node.tag in self.yaml_constructors: + constructor = self.yaml_constructors[node.tag] + else: + for tag_prefix in self.yaml_multi_constructors: + if tag_prefix is not None and node.tag.startswith(tag_prefix): + tag_suffix = node.tag[len(tag_prefix):] + constructor = self.yaml_multi_constructors[tag_prefix] + break + else: + if None in self.yaml_multi_constructors: + tag_suffix = node.tag + constructor = self.yaml_multi_constructors[None] + elif None in self.yaml_constructors: + constructor = self.yaml_constructors[None] + elif isinstance(node, ScalarNode): + constructor = self.__class__.construct_scalar + elif isinstance(node, SequenceNode): + constructor = self.__class__.construct_sequence + elif isinstance(node, MappingNode): + constructor = self.__class__.construct_mapping + if tag_suffix is None: + data = constructor(self, node) + else: + data = constructor(self, tag_suffix, node) + if isinstance(data, types.GeneratorType): + generator = data + data = next(generator) + if self.deep_construct: + for dummy in generator: + pass + else: + self.state_generators.append(generator) + self.constructed_objects[node] = data + del self.recursive_objects[node] + if deep: + self.deep_construct = old_deep + return data + + def construct_scalar(self, node): + if not isinstance(node, ScalarNode): + raise ConstructorError(None, None, + "expected a scalar node, but found %s" % node.id, + node.start_mark) + return node.value + + def construct_sequence(self, node, deep=False): + if not isinstance(node, SequenceNode): + raise ConstructorError(None, None, + "expected a sequence node, but found %s" % node.id, + node.start_mark) + return [self.construct_object(child, deep=deep) + for child in node.value] + + def construct_mapping(self, node, deep=False): + if not isinstance(node, MappingNode): + raise ConstructorError(None, None, + "expected a mapping node, but found %s" % node.id, + node.start_mark) + mapping = {} + for key_node, value_node in node.value: + key = self.construct_object(key_node, deep=deep) + if not isinstance(key, collections.abc.Hashable): + raise ConstructorError("while constructing a mapping", node.start_mark, + "found unhashable key", key_node.start_mark) + value = self.construct_object(value_node, deep=deep) + mapping[key] = value + return mapping + + def construct_pairs(self, node, deep=False): + if not isinstance(node, MappingNode): + raise ConstructorError(None, None, + "expected a mapping node, but found %s" % node.id, + node.start_mark) + pairs = [] + for key_node, value_node in node.value: + key = self.construct_object(key_node, deep=deep) + value = self.construct_object(value_node, deep=deep) + pairs.append((key, value)) + return pairs + + @classmethod + def add_constructor(cls, tag, constructor): + if not 'yaml_constructors' in cls.__dict__: + cls.yaml_constructors = cls.yaml_constructors.copy() + cls.yaml_constructors[tag] = constructor + + @classmethod + def add_multi_constructor(cls, tag_prefix, multi_constructor): + if not 'yaml_multi_constructors' in cls.__dict__: + cls.yaml_multi_constructors = cls.yaml_multi_constructors.copy() + cls.yaml_multi_constructors[tag_prefix] = multi_constructor + +class SafeConstructor(BaseConstructor): + + def construct_scalar(self, node): + if isinstance(node, MappingNode): + for key_node, value_node in node.value: + if key_node.tag == 'tag:yaml.org,2002:value': + return self.construct_scalar(value_node) + return super().construct_scalar(node) + + def flatten_mapping(self, node): + merge = [] + index = 0 + while index < len(node.value): + key_node, value_node = node.value[index] + if key_node.tag == 'tag:yaml.org,2002:merge': + del node.value[index] + if isinstance(value_node, MappingNode): + self.flatten_mapping(value_node) + merge.extend(value_node.value) + elif isinstance(value_node, SequenceNode): + submerge = [] + for subnode in value_node.value: + if not isinstance(subnode, MappingNode): + raise ConstructorError("while constructing a mapping", + node.start_mark, + "expected a mapping for merging, but found %s" + % subnode.id, subnode.start_mark) + self.flatten_mapping(subnode) + submerge.append(subnode.value) + submerge.reverse() + for value in submerge: + merge.extend(value) + else: + raise ConstructorError("while constructing a mapping", node.start_mark, + "expected a mapping or list of mappings for merging, but found %s" + % value_node.id, value_node.start_mark) + elif key_node.tag == 'tag:yaml.org,2002:value': + key_node.tag = 'tag:yaml.org,2002:str' + index += 1 + else: + index += 1 + if merge: + node.value = merge + node.value + + def construct_mapping(self, node, deep=False): + if isinstance(node, MappingNode): + self.flatten_mapping(node) + return super().construct_mapping(node, deep=deep) + + def construct_yaml_null(self, node): + self.construct_scalar(node) + return None + + bool_values = { + 'yes': True, + 'no': False, + 'true': True, + 'false': False, + 'on': True, + 'off': False, + } + + def construct_yaml_bool(self, node): + value = self.construct_scalar(node) + return self.bool_values[value.lower()] + + def construct_yaml_int(self, node): + value = self.construct_scalar(node) + value = value.replace('_', '') + sign = +1 + if value[0] == '-': + sign = -1 + if value[0] in '+-': + value = value[1:] + if value == '0': + return 0 + elif value.startswith('0b'): + return sign*int(value[2:], 2) + elif value.startswith('0x'): + return sign*int(value[2:], 16) + elif value[0] == '0': + return sign*int(value, 8) + elif ':' in value: + digits = [int(part) for part in value.split(':')] + digits.reverse() + base = 1 + value = 0 + for digit in digits: + value += digit*base + base *= 60 + return sign*value + else: + return sign*int(value) + + inf_value = 1e300 + while inf_value != inf_value*inf_value: + inf_value *= inf_value + nan_value = -inf_value/inf_value # Trying to make a quiet NaN (like C99). + + def construct_yaml_float(self, node): + value = self.construct_scalar(node) + value = value.replace('_', '').lower() + sign = +1 + if value[0] == '-': + sign = -1 + if value[0] in '+-': + value = value[1:] + if value == '.inf': + return sign*self.inf_value + elif value == '.nan': + return self.nan_value + elif ':' in value: + digits = [float(part) for part in value.split(':')] + digits.reverse() + base = 1 + value = 0.0 + for digit in digits: + value += digit*base + base *= 60 + return sign*value + else: + return sign*float(value) + + def construct_yaml_binary(self, node): + try: + value = self.construct_scalar(node).encode('ascii') + except UnicodeEncodeError as exc: + raise ConstructorError(None, None, + "failed to convert base64 data into ascii: %s" % exc, + node.start_mark) + try: + if hasattr(base64, 'decodebytes'): + return base64.decodebytes(value) + else: + return base64.decodestring(value) + except binascii.Error as exc: + raise ConstructorError(None, None, + "failed to decode base64 data: %s" % exc, node.start_mark) + + timestamp_regexp = re.compile( + r'''^(?P[0-9][0-9][0-9][0-9]) + -(?P[0-9][0-9]?) + -(?P[0-9][0-9]?) + (?:(?:[Tt]|[ \t]+) + (?P[0-9][0-9]?) + :(?P[0-9][0-9]) + :(?P[0-9][0-9]) + (?:\.(?P[0-9]*))? + (?:[ \t]*(?PZ|(?P[-+])(?P[0-9][0-9]?) + (?::(?P[0-9][0-9]))?))?)?$''', re.X) + + def construct_yaml_timestamp(self, node): + value = self.construct_scalar(node) + match = self.timestamp_regexp.match(node.value) + values = match.groupdict() + year = int(values['year']) + month = int(values['month']) + day = int(values['day']) + if not values['hour']: + return datetime.date(year, month, day) + hour = int(values['hour']) + minute = int(values['minute']) + second = int(values['second']) + fraction = 0 + tzinfo = None + if values['fraction']: + fraction = values['fraction'][:6] + while len(fraction) < 6: + fraction += '0' + fraction = int(fraction) + if values['tz_sign']: + tz_hour = int(values['tz_hour']) + tz_minute = int(values['tz_minute'] or 0) + delta = datetime.timedelta(hours=tz_hour, minutes=tz_minute) + if values['tz_sign'] == '-': + delta = -delta + tzinfo = datetime.timezone(delta) + elif values['tz']: + tzinfo = datetime.timezone.utc + return datetime.datetime(year, month, day, hour, minute, second, fraction, + tzinfo=tzinfo) + + def construct_yaml_omap(self, node): + # Note: we do not check for duplicate keys, because it's too + # CPU-expensive. + omap = [] + yield omap + if not isinstance(node, SequenceNode): + raise ConstructorError("while constructing an ordered map", node.start_mark, + "expected a sequence, but found %s" % node.id, node.start_mark) + for subnode in node.value: + if not isinstance(subnode, MappingNode): + raise ConstructorError("while constructing an ordered map", node.start_mark, + "expected a mapping of length 1, but found %s" % subnode.id, + subnode.start_mark) + if len(subnode.value) != 1: + raise ConstructorError("while constructing an ordered map", node.start_mark, + "expected a single mapping item, but found %d items" % len(subnode.value), + subnode.start_mark) + key_node, value_node = subnode.value[0] + key = self.construct_object(key_node) + value = self.construct_object(value_node) + omap.append((key, value)) + + def construct_yaml_pairs(self, node): + # Note: the same code as `construct_yaml_omap`. + pairs = [] + yield pairs + if not isinstance(node, SequenceNode): + raise ConstructorError("while constructing pairs", node.start_mark, + "expected a sequence, but found %s" % node.id, node.start_mark) + for subnode in node.value: + if not isinstance(subnode, MappingNode): + raise ConstructorError("while constructing pairs", node.start_mark, + "expected a mapping of length 1, but found %s" % subnode.id, + subnode.start_mark) + if len(subnode.value) != 1: + raise ConstructorError("while constructing pairs", node.start_mark, + "expected a single mapping item, but found %d items" % len(subnode.value), + subnode.start_mark) + key_node, value_node = subnode.value[0] + key = self.construct_object(key_node) + value = self.construct_object(value_node) + pairs.append((key, value)) + + def construct_yaml_set(self, node): + data = set() + yield data + value = self.construct_mapping(node) + data.update(value) + + def construct_yaml_str(self, node): + return self.construct_scalar(node) + + def construct_yaml_seq(self, node): + data = [] + yield data + data.extend(self.construct_sequence(node)) + + def construct_yaml_map(self, node): + data = {} + yield data + value = self.construct_mapping(node) + data.update(value) + + def construct_yaml_object(self, node, cls): + data = cls.__new__(cls) + yield data + if hasattr(data, '__setstate__'): + state = self.construct_mapping(node, deep=True) + data.__setstate__(state) + else: + state = self.construct_mapping(node) + data.__dict__.update(state) + + def construct_undefined(self, node): + raise ConstructorError(None, None, + "could not determine a constructor for the tag %r" % node.tag, + node.start_mark) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:null', + SafeConstructor.construct_yaml_null) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:bool', + SafeConstructor.construct_yaml_bool) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:int', + SafeConstructor.construct_yaml_int) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:float', + SafeConstructor.construct_yaml_float) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:binary', + SafeConstructor.construct_yaml_binary) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:timestamp', + SafeConstructor.construct_yaml_timestamp) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:omap', + SafeConstructor.construct_yaml_omap) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:pairs', + SafeConstructor.construct_yaml_pairs) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:set', + SafeConstructor.construct_yaml_set) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:str', + SafeConstructor.construct_yaml_str) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:seq', + SafeConstructor.construct_yaml_seq) + +SafeConstructor.add_constructor( + 'tag:yaml.org,2002:map', + SafeConstructor.construct_yaml_map) + +SafeConstructor.add_constructor(None, + SafeConstructor.construct_undefined) + +class FullConstructor(SafeConstructor): + # 'extend' is blacklisted because it is used by + # construct_python_object_apply to add `listitems` to a newly generate + # python instance + def get_state_keys_blacklist(self): + return ['^extend$', '^__.*__$'] + + def get_state_keys_blacklist_regexp(self): + if not hasattr(self, 'state_keys_blacklist_regexp'): + self.state_keys_blacklist_regexp = re.compile('(' + '|'.join(self.get_state_keys_blacklist()) + ')') + return self.state_keys_blacklist_regexp + + def construct_python_str(self, node): + return self.construct_scalar(node) + + def construct_python_unicode(self, node): + return self.construct_scalar(node) + + def construct_python_bytes(self, node): + try: + value = self.construct_scalar(node).encode('ascii') + except UnicodeEncodeError as exc: + raise ConstructorError(None, None, + "failed to convert base64 data into ascii: %s" % exc, + node.start_mark) + try: + if hasattr(base64, 'decodebytes'): + return base64.decodebytes(value) + else: + return base64.decodestring(value) + except binascii.Error as exc: + raise ConstructorError(None, None, + "failed to decode base64 data: %s" % exc, node.start_mark) + + def construct_python_long(self, node): + return self.construct_yaml_int(node) + + def construct_python_complex(self, node): + return complex(self.construct_scalar(node)) + + def construct_python_tuple(self, node): + return tuple(self.construct_sequence(node)) + + def find_python_module(self, name, mark, unsafe=False): + if not name: + raise ConstructorError("while constructing a Python module", mark, + "expected non-empty name appended to the tag", mark) + if unsafe: + try: + __import__(name) + except ImportError as exc: + raise ConstructorError("while constructing a Python module", mark, + "cannot find module %r (%s)" % (name, exc), mark) + if name not in sys.modules: + raise ConstructorError("while constructing a Python module", mark, + "module %r is not imported" % name, mark) + return sys.modules[name] + + def find_python_name(self, name, mark, unsafe=False): + if not name: + raise ConstructorError("while constructing a Python object", mark, + "expected non-empty name appended to the tag", mark) + if '.' in name: + module_name, object_name = name.rsplit('.', 1) + else: + module_name = 'builtins' + object_name = name + if unsafe: + try: + __import__(module_name) + except ImportError as exc: + raise ConstructorError("while constructing a Python object", mark, + "cannot find module %r (%s)" % (module_name, exc), mark) + if module_name not in sys.modules: + raise ConstructorError("while constructing a Python object", mark, + "module %r is not imported" % module_name, mark) + module = sys.modules[module_name] + if not hasattr(module, object_name): + raise ConstructorError("while constructing a Python object", mark, + "cannot find %r in the module %r" + % (object_name, module.__name__), mark) + return getattr(module, object_name) + + def construct_python_name(self, suffix, node): + value = self.construct_scalar(node) + if value: + raise ConstructorError("while constructing a Python name", node.start_mark, + "expected the empty value, but found %r" % value, node.start_mark) + return self.find_python_name(suffix, node.start_mark) + + def construct_python_module(self, suffix, node): + value = self.construct_scalar(node) + if value: + raise ConstructorError("while constructing a Python module", node.start_mark, + "expected the empty value, but found %r" % value, node.start_mark) + return self.find_python_module(suffix, node.start_mark) + + def make_python_instance(self, suffix, node, + args=None, kwds=None, newobj=False, unsafe=False): + if not args: + args = [] + if not kwds: + kwds = {} + cls = self.find_python_name(suffix, node.start_mark) + if not (unsafe or isinstance(cls, type)): + raise ConstructorError("while constructing a Python instance", node.start_mark, + "expected a class, but found %r" % type(cls), + node.start_mark) + if newobj and isinstance(cls, type): + return cls.__new__(cls, *args, **kwds) + else: + return cls(*args, **kwds) + + def set_python_instance_state(self, instance, state, unsafe=False): + if hasattr(instance, '__setstate__'): + instance.__setstate__(state) + else: + slotstate = {} + if isinstance(state, tuple) and len(state) == 2: + state, slotstate = state + if hasattr(instance, '__dict__'): + if not unsafe and state: + for key in state.keys(): + self.check_state_key(key) + instance.__dict__.update(state) + elif state: + slotstate.update(state) + for key, value in slotstate.items(): + if not unsafe: + self.check_state_key(key) + setattr(instance, key, value) + + def construct_python_object(self, suffix, node): + # Format: + # !!python/object:module.name { ... state ... } + instance = self.make_python_instance(suffix, node, newobj=True) + yield instance + deep = hasattr(instance, '__setstate__') + state = self.construct_mapping(node, deep=deep) + self.set_python_instance_state(instance, state) + + def construct_python_object_apply(self, suffix, node, newobj=False): + # Format: + # !!python/object/apply # (or !!python/object/new) + # args: [ ... arguments ... ] + # kwds: { ... keywords ... } + # state: ... state ... + # listitems: [ ... listitems ... ] + # dictitems: { ... dictitems ... } + # or short format: + # !!python/object/apply [ ... arguments ... ] + # The difference between !!python/object/apply and !!python/object/new + # is how an object is created, check make_python_instance for details. + if isinstance(node, SequenceNode): + args = self.construct_sequence(node, deep=True) + kwds = {} + state = {} + listitems = [] + dictitems = {} + else: + value = self.construct_mapping(node, deep=True) + args = value.get('args', []) + kwds = value.get('kwds', {}) + state = value.get('state', {}) + listitems = value.get('listitems', []) + dictitems = value.get('dictitems', {}) + instance = self.make_python_instance(suffix, node, args, kwds, newobj) + if state: + self.set_python_instance_state(instance, state) + if listitems: + instance.extend(listitems) + if dictitems: + for key in dictitems: + instance[key] = dictitems[key] + return instance + + def construct_python_object_new(self, suffix, node): + return self.construct_python_object_apply(suffix, node, newobj=True) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/none', + FullConstructor.construct_yaml_null) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/bool', + FullConstructor.construct_yaml_bool) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/str', + FullConstructor.construct_python_str) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/unicode', + FullConstructor.construct_python_unicode) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/bytes', + FullConstructor.construct_python_bytes) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/int', + FullConstructor.construct_yaml_int) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/long', + FullConstructor.construct_python_long) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/float', + FullConstructor.construct_yaml_float) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/complex', + FullConstructor.construct_python_complex) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/list', + FullConstructor.construct_yaml_seq) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/tuple', + FullConstructor.construct_python_tuple) + +FullConstructor.add_constructor( + 'tag:yaml.org,2002:python/dict', + FullConstructor.construct_yaml_map) + +FullConstructor.add_multi_constructor( + 'tag:yaml.org,2002:python/name:', + FullConstructor.construct_python_name) + +class UnsafeConstructor(FullConstructor): + + def find_python_module(self, name, mark): + return super(UnsafeConstructor, self).find_python_module(name, mark, unsafe=True) + + def find_python_name(self, name, mark): + return super(UnsafeConstructor, self).find_python_name(name, mark, unsafe=True) + + def make_python_instance(self, suffix, node, args=None, kwds=None, newobj=False): + return super(UnsafeConstructor, self).make_python_instance( + suffix, node, args, kwds, newobj, unsafe=True) + + def set_python_instance_state(self, instance, state): + return super(UnsafeConstructor, self).set_python_instance_state( + instance, state, unsafe=True) + +UnsafeConstructor.add_multi_constructor( + 'tag:yaml.org,2002:python/module:', + UnsafeConstructor.construct_python_module) + +UnsafeConstructor.add_multi_constructor( + 'tag:yaml.org,2002:python/object:', + UnsafeConstructor.construct_python_object) + +UnsafeConstructor.add_multi_constructor( + 'tag:yaml.org,2002:python/object/new:', + UnsafeConstructor.construct_python_object_new) + +UnsafeConstructor.add_multi_constructor( + 'tag:yaml.org,2002:python/object/apply:', + UnsafeConstructor.construct_python_object_apply) + +# Constructor is same as UnsafeConstructor. Need to leave this in place in case +# people have extended it directly. +class Constructor(UnsafeConstructor): + pass diff --git a/lib/yaml/cyaml.py b/lib/yaml/cyaml.py new file mode 100644 index 0000000..0c21345 --- /dev/null +++ b/lib/yaml/cyaml.py @@ -0,0 +1,101 @@ + +__all__ = [ + 'CBaseLoader', 'CSafeLoader', 'CFullLoader', 'CUnsafeLoader', 'CLoader', + 'CBaseDumper', 'CSafeDumper', 'CDumper' +] + +from yaml._yaml import CParser, CEmitter + +from .constructor import * + +from .serializer import * +from .representer import * + +from .resolver import * + +class CBaseLoader(CParser, BaseConstructor, BaseResolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + BaseConstructor.__init__(self) + BaseResolver.__init__(self) + +class CSafeLoader(CParser, SafeConstructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + SafeConstructor.__init__(self) + Resolver.__init__(self) + +class CFullLoader(CParser, FullConstructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + FullConstructor.__init__(self) + Resolver.__init__(self) + +class CUnsafeLoader(CParser, UnsafeConstructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + UnsafeConstructor.__init__(self) + Resolver.__init__(self) + +class CLoader(CParser, Constructor, Resolver): + + def __init__(self, stream): + CParser.__init__(self, stream) + Constructor.__init__(self) + Resolver.__init__(self) + +class CBaseDumper(CEmitter, BaseRepresenter, BaseResolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + CEmitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, encoding=encoding, + allow_unicode=allow_unicode, line_break=line_break, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class CSafeDumper(CEmitter, SafeRepresenter, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + CEmitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, encoding=encoding, + allow_unicode=allow_unicode, line_break=line_break, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + SafeRepresenter.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class CDumper(CEmitter, Serializer, Representer, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + CEmitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, encoding=encoding, + allow_unicode=allow_unicode, line_break=line_break, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + diff --git a/lib/yaml/dumper.py b/lib/yaml/dumper.py new file mode 100644 index 0000000..6aadba5 --- /dev/null +++ b/lib/yaml/dumper.py @@ -0,0 +1,62 @@ + +__all__ = ['BaseDumper', 'SafeDumper', 'Dumper'] + +from .emitter import * +from .serializer import * +from .representer import * +from .resolver import * + +class BaseDumper(Emitter, Serializer, BaseRepresenter, BaseResolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + Emitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break) + Serializer.__init__(self, encoding=encoding, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class SafeDumper(Emitter, Serializer, SafeRepresenter, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + Emitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break) + Serializer.__init__(self, encoding=encoding, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + SafeRepresenter.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + +class Dumper(Emitter, Serializer, Representer, Resolver): + + def __init__(self, stream, + default_style=None, default_flow_style=False, + canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None, + encoding=None, explicit_start=None, explicit_end=None, + version=None, tags=None, sort_keys=True): + Emitter.__init__(self, stream, canonical=canonical, + indent=indent, width=width, + allow_unicode=allow_unicode, line_break=line_break) + Serializer.__init__(self, encoding=encoding, + explicit_start=explicit_start, explicit_end=explicit_end, + version=version, tags=tags) + Representer.__init__(self, default_style=default_style, + default_flow_style=default_flow_style, sort_keys=sort_keys) + Resolver.__init__(self) + diff --git a/lib/yaml/emitter.py b/lib/yaml/emitter.py new file mode 100644 index 0000000..a664d01 --- /dev/null +++ b/lib/yaml/emitter.py @@ -0,0 +1,1137 @@ + +# Emitter expects events obeying the following grammar: +# stream ::= STREAM-START document* STREAM-END +# document ::= DOCUMENT-START node DOCUMENT-END +# node ::= SCALAR | sequence | mapping +# sequence ::= SEQUENCE-START node* SEQUENCE-END +# mapping ::= MAPPING-START (node node)* MAPPING-END + +__all__ = ['Emitter', 'EmitterError'] + +from .error import YAMLError +from .events import * + +class EmitterError(YAMLError): + pass + +class ScalarAnalysis: + def __init__(self, scalar, empty, multiline, + allow_flow_plain, allow_block_plain, + allow_single_quoted, allow_double_quoted, + allow_block): + self.scalar = scalar + self.empty = empty + self.multiline = multiline + self.allow_flow_plain = allow_flow_plain + self.allow_block_plain = allow_block_plain + self.allow_single_quoted = allow_single_quoted + self.allow_double_quoted = allow_double_quoted + self.allow_block = allow_block + +class Emitter: + + DEFAULT_TAG_PREFIXES = { + '!' : '!', + 'tag:yaml.org,2002:' : '!!', + } + + def __init__(self, stream, canonical=None, indent=None, width=None, + allow_unicode=None, line_break=None): + + # The stream should have the methods `write` and possibly `flush`. + self.stream = stream + + # Encoding can be overridden by STREAM-START. + self.encoding = None + + # Emitter is a state machine with a stack of states to handle nested + # structures. + self.states = [] + self.state = self.expect_stream_start + + # Current event and the event queue. + self.events = [] + self.event = None + + # The current indentation level and the stack of previous indents. + self.indents = [] + self.indent = None + + # Flow level. + self.flow_level = 0 + + # Contexts. + self.root_context = False + self.sequence_context = False + self.mapping_context = False + self.simple_key_context = False + + # Characteristics of the last emitted character: + # - current position. + # - is it a whitespace? + # - is it an indention character + # (indentation space, '-', '?', or ':')? + self.line = 0 + self.column = 0 + self.whitespace = True + self.indention = True + + # Whether the document requires an explicit document indicator + self.open_ended = False + + # Formatting details. + self.canonical = canonical + self.allow_unicode = allow_unicode + self.best_indent = 2 + if indent and 1 < indent < 10: + self.best_indent = indent + self.best_width = 80 + if width and width > self.best_indent*2: + self.best_width = width + self.best_line_break = '\n' + if line_break in ['\r', '\n', '\r\n']: + self.best_line_break = line_break + + # Tag prefixes. + self.tag_prefixes = None + + # Prepared anchor and tag. + self.prepared_anchor = None + self.prepared_tag = None + + # Scalar analysis and style. + self.analysis = None + self.style = None + + def dispose(self): + # Reset the state attributes (to clear self-references) + self.states = [] + self.state = None + + def emit(self, event): + self.events.append(event) + while not self.need_more_events(): + self.event = self.events.pop(0) + self.state() + self.event = None + + # In some cases, we wait for a few next events before emitting. + + def need_more_events(self): + if not self.events: + return True + event = self.events[0] + if isinstance(event, DocumentStartEvent): + return self.need_events(1) + elif isinstance(event, SequenceStartEvent): + return self.need_events(2) + elif isinstance(event, MappingStartEvent): + return self.need_events(3) + else: + return False + + def need_events(self, count): + level = 0 + for event in self.events[1:]: + if isinstance(event, (DocumentStartEvent, CollectionStartEvent)): + level += 1 + elif isinstance(event, (DocumentEndEvent, CollectionEndEvent)): + level -= 1 + elif isinstance(event, StreamEndEvent): + level = -1 + if level < 0: + return False + return (len(self.events) < count+1) + + def increase_indent(self, flow=False, indentless=False): + self.indents.append(self.indent) + if self.indent is None: + if flow: + self.indent = self.best_indent + else: + self.indent = 0 + elif not indentless: + self.indent += self.best_indent + + # States. + + # Stream handlers. + + def expect_stream_start(self): + if isinstance(self.event, StreamStartEvent): + if self.event.encoding and not hasattr(self.stream, 'encoding'): + self.encoding = self.event.encoding + self.write_stream_start() + self.state = self.expect_first_document_start + else: + raise EmitterError("expected StreamStartEvent, but got %s" + % self.event) + + def expect_nothing(self): + raise EmitterError("expected nothing, but got %s" % self.event) + + # Document handlers. + + def expect_first_document_start(self): + return self.expect_document_start(first=True) + + def expect_document_start(self, first=False): + if isinstance(self.event, DocumentStartEvent): + if (self.event.version or self.event.tags) and self.open_ended: + self.write_indicator('...', True) + self.write_indent() + if self.event.version: + version_text = self.prepare_version(self.event.version) + self.write_version_directive(version_text) + self.tag_prefixes = self.DEFAULT_TAG_PREFIXES.copy() + if self.event.tags: + handles = sorted(self.event.tags.keys()) + for handle in handles: + prefix = self.event.tags[handle] + self.tag_prefixes[prefix] = handle + handle_text = self.prepare_tag_handle(handle) + prefix_text = self.prepare_tag_prefix(prefix) + self.write_tag_directive(handle_text, prefix_text) + implicit = (first and not self.event.explicit and not self.canonical + and not self.event.version and not self.event.tags + and not self.check_empty_document()) + if not implicit: + self.write_indent() + self.write_indicator('---', True) + if self.canonical: + self.write_indent() + self.state = self.expect_document_root + elif isinstance(self.event, StreamEndEvent): + if self.open_ended: + self.write_indicator('...', True) + self.write_indent() + self.write_stream_end() + self.state = self.expect_nothing + else: + raise EmitterError("expected DocumentStartEvent, but got %s" + % self.event) + + def expect_document_end(self): + if isinstance(self.event, DocumentEndEvent): + self.write_indent() + if self.event.explicit: + self.write_indicator('...', True) + self.write_indent() + self.flush_stream() + self.state = self.expect_document_start + else: + raise EmitterError("expected DocumentEndEvent, but got %s" + % self.event) + + def expect_document_root(self): + self.states.append(self.expect_document_end) + self.expect_node(root=True) + + # Node handlers. + + def expect_node(self, root=False, sequence=False, mapping=False, + simple_key=False): + self.root_context = root + self.sequence_context = sequence + self.mapping_context = mapping + self.simple_key_context = simple_key + if isinstance(self.event, AliasEvent): + self.expect_alias() + elif isinstance(self.event, (ScalarEvent, CollectionStartEvent)): + self.process_anchor('&') + self.process_tag() + if isinstance(self.event, ScalarEvent): + self.expect_scalar() + elif isinstance(self.event, SequenceStartEvent): + if self.flow_level or self.canonical or self.event.flow_style \ + or self.check_empty_sequence(): + self.expect_flow_sequence() + else: + self.expect_block_sequence() + elif isinstance(self.event, MappingStartEvent): + if self.flow_level or self.canonical or self.event.flow_style \ + or self.check_empty_mapping(): + self.expect_flow_mapping() + else: + self.expect_block_mapping() + else: + raise EmitterError("expected NodeEvent, but got %s" % self.event) + + def expect_alias(self): + if self.event.anchor is None: + raise EmitterError("anchor is not specified for alias") + self.process_anchor('*') + self.state = self.states.pop() + + def expect_scalar(self): + self.increase_indent(flow=True) + self.process_scalar() + self.indent = self.indents.pop() + self.state = self.states.pop() + + # Flow sequence handlers. + + def expect_flow_sequence(self): + self.write_indicator('[', True, whitespace=True) + self.flow_level += 1 + self.increase_indent(flow=True) + self.state = self.expect_first_flow_sequence_item + + def expect_first_flow_sequence_item(self): + if isinstance(self.event, SequenceEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + self.write_indicator(']', False) + self.state = self.states.pop() + else: + if self.canonical or self.column > self.best_width: + self.write_indent() + self.states.append(self.expect_flow_sequence_item) + self.expect_node(sequence=True) + + def expect_flow_sequence_item(self): + if isinstance(self.event, SequenceEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + if self.canonical: + self.write_indicator(',', False) + self.write_indent() + self.write_indicator(']', False) + self.state = self.states.pop() + else: + self.write_indicator(',', False) + if self.canonical or self.column > self.best_width: + self.write_indent() + self.states.append(self.expect_flow_sequence_item) + self.expect_node(sequence=True) + + # Flow mapping handlers. + + def expect_flow_mapping(self): + self.write_indicator('{', True, whitespace=True) + self.flow_level += 1 + self.increase_indent(flow=True) + self.state = self.expect_first_flow_mapping_key + + def expect_first_flow_mapping_key(self): + if isinstance(self.event, MappingEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + self.write_indicator('}', False) + self.state = self.states.pop() + else: + if self.canonical or self.column > self.best_width: + self.write_indent() + if not self.canonical and self.check_simple_key(): + self.states.append(self.expect_flow_mapping_simple_value) + self.expect_node(mapping=True, simple_key=True) + else: + self.write_indicator('?', True) + self.states.append(self.expect_flow_mapping_value) + self.expect_node(mapping=True) + + def expect_flow_mapping_key(self): + if isinstance(self.event, MappingEndEvent): + self.indent = self.indents.pop() + self.flow_level -= 1 + if self.canonical: + self.write_indicator(',', False) + self.write_indent() + self.write_indicator('}', False) + self.state = self.states.pop() + else: + self.write_indicator(',', False) + if self.canonical or self.column > self.best_width: + self.write_indent() + if not self.canonical and self.check_simple_key(): + self.states.append(self.expect_flow_mapping_simple_value) + self.expect_node(mapping=True, simple_key=True) + else: + self.write_indicator('?', True) + self.states.append(self.expect_flow_mapping_value) + self.expect_node(mapping=True) + + def expect_flow_mapping_simple_value(self): + self.write_indicator(':', False) + self.states.append(self.expect_flow_mapping_key) + self.expect_node(mapping=True) + + def expect_flow_mapping_value(self): + if self.canonical or self.column > self.best_width: + self.write_indent() + self.write_indicator(':', True) + self.states.append(self.expect_flow_mapping_key) + self.expect_node(mapping=True) + + # Block sequence handlers. + + def expect_block_sequence(self): + indentless = (self.mapping_context and not self.indention) + self.increase_indent(flow=False, indentless=indentless) + self.state = self.expect_first_block_sequence_item + + def expect_first_block_sequence_item(self): + return self.expect_block_sequence_item(first=True) + + def expect_block_sequence_item(self, first=False): + if not first and isinstance(self.event, SequenceEndEvent): + self.indent = self.indents.pop() + self.state = self.states.pop() + else: + self.write_indent() + self.write_indicator('-', True, indention=True) + self.states.append(self.expect_block_sequence_item) + self.expect_node(sequence=True) + + # Block mapping handlers. + + def expect_block_mapping(self): + self.increase_indent(flow=False) + self.state = self.expect_first_block_mapping_key + + def expect_first_block_mapping_key(self): + return self.expect_block_mapping_key(first=True) + + def expect_block_mapping_key(self, first=False): + if not first and isinstance(self.event, MappingEndEvent): + self.indent = self.indents.pop() + self.state = self.states.pop() + else: + self.write_indent() + if self.check_simple_key(): + self.states.append(self.expect_block_mapping_simple_value) + self.expect_node(mapping=True, simple_key=True) + else: + self.write_indicator('?', True, indention=True) + self.states.append(self.expect_block_mapping_value) + self.expect_node(mapping=True) + + def expect_block_mapping_simple_value(self): + self.write_indicator(':', False) + self.states.append(self.expect_block_mapping_key) + self.expect_node(mapping=True) + + def expect_block_mapping_value(self): + self.write_indent() + self.write_indicator(':', True, indention=True) + self.states.append(self.expect_block_mapping_key) + self.expect_node(mapping=True) + + # Checkers. + + def check_empty_sequence(self): + return (isinstance(self.event, SequenceStartEvent) and self.events + and isinstance(self.events[0], SequenceEndEvent)) + + def check_empty_mapping(self): + return (isinstance(self.event, MappingStartEvent) and self.events + and isinstance(self.events[0], MappingEndEvent)) + + def check_empty_document(self): + if not isinstance(self.event, DocumentStartEvent) or not self.events: + return False + event = self.events[0] + return (isinstance(event, ScalarEvent) and event.anchor is None + and event.tag is None and event.implicit and event.value == '') + + def check_simple_key(self): + length = 0 + if isinstance(self.event, NodeEvent) and self.event.anchor is not None: + if self.prepared_anchor is None: + self.prepared_anchor = self.prepare_anchor(self.event.anchor) + length += len(self.prepared_anchor) + if isinstance(self.event, (ScalarEvent, CollectionStartEvent)) \ + and self.event.tag is not None: + if self.prepared_tag is None: + self.prepared_tag = self.prepare_tag(self.event.tag) + length += len(self.prepared_tag) + if isinstance(self.event, ScalarEvent): + if self.analysis is None: + self.analysis = self.analyze_scalar(self.event.value) + length += len(self.analysis.scalar) + return (length < 128 and (isinstance(self.event, AliasEvent) + or (isinstance(self.event, ScalarEvent) + and not self.analysis.empty and not self.analysis.multiline) + or self.check_empty_sequence() or self.check_empty_mapping())) + + # Anchor, Tag, and Scalar processors. + + def process_anchor(self, indicator): + if self.event.anchor is None: + self.prepared_anchor = None + return + if self.prepared_anchor is None: + self.prepared_anchor = self.prepare_anchor(self.event.anchor) + if self.prepared_anchor: + self.write_indicator(indicator+self.prepared_anchor, True) + self.prepared_anchor = None + + def process_tag(self): + tag = self.event.tag + if isinstance(self.event, ScalarEvent): + if self.style is None: + self.style = self.choose_scalar_style() + if ((not self.canonical or tag is None) and + ((self.style == '' and self.event.implicit[0]) + or (self.style != '' and self.event.implicit[1]))): + self.prepared_tag = None + return + if self.event.implicit[0] and tag is None: + tag = '!' + self.prepared_tag = None + else: + if (not self.canonical or tag is None) and self.event.implicit: + self.prepared_tag = None + return + if tag is None: + raise EmitterError("tag is not specified") + if self.prepared_tag is None: + self.prepared_tag = self.prepare_tag(tag) + if self.prepared_tag: + self.write_indicator(self.prepared_tag, True) + self.prepared_tag = None + + def choose_scalar_style(self): + if self.analysis is None: + self.analysis = self.analyze_scalar(self.event.value) + if self.event.style == '"' or self.canonical: + return '"' + if not self.event.style and self.event.implicit[0]: + if (not (self.simple_key_context and + (self.analysis.empty or self.analysis.multiline)) + and (self.flow_level and self.analysis.allow_flow_plain + or (not self.flow_level and self.analysis.allow_block_plain))): + return '' + if self.event.style and self.event.style in '|>': + if (not self.flow_level and not self.simple_key_context + and self.analysis.allow_block): + return self.event.style + if not self.event.style or self.event.style == '\'': + if (self.analysis.allow_single_quoted and + not (self.simple_key_context and self.analysis.multiline)): + return '\'' + return '"' + + def process_scalar(self): + if self.analysis is None: + self.analysis = self.analyze_scalar(self.event.value) + if self.style is None: + self.style = self.choose_scalar_style() + split = (not self.simple_key_context) + #if self.analysis.multiline and split \ + # and (not self.style or self.style in '\'\"'): + # self.write_indent() + if self.style == '"': + self.write_double_quoted(self.analysis.scalar, split) + elif self.style == '\'': + self.write_single_quoted(self.analysis.scalar, split) + elif self.style == '>': + self.write_folded(self.analysis.scalar) + elif self.style == '|': + self.write_literal(self.analysis.scalar) + else: + self.write_plain(self.analysis.scalar, split) + self.analysis = None + self.style = None + + # Analyzers. + + def prepare_version(self, version): + major, minor = version + if major != 1: + raise EmitterError("unsupported YAML version: %d.%d" % (major, minor)) + return '%d.%d' % (major, minor) + + def prepare_tag_handle(self, handle): + if not handle: + raise EmitterError("tag handle must not be empty") + if handle[0] != '!' or handle[-1] != '!': + raise EmitterError("tag handle must start and end with '!': %r" % handle) + for ch in handle[1:-1]: + if not ('0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-_'): + raise EmitterError("invalid character %r in the tag handle: %r" + % (ch, handle)) + return handle + + def prepare_tag_prefix(self, prefix): + if not prefix: + raise EmitterError("tag prefix must not be empty") + chunks = [] + start = end = 0 + if prefix[0] == '!': + end = 1 + while end < len(prefix): + ch = prefix[end] + if '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-;/?!:@&=+$,_.~*\'()[]': + end += 1 + else: + if start < end: + chunks.append(prefix[start:end]) + start = end = end+1 + data = ch.encode('utf-8') + for ch in data: + chunks.append('%%%02X' % ord(ch)) + if start < end: + chunks.append(prefix[start:end]) + return ''.join(chunks) + + def prepare_tag(self, tag): + if not tag: + raise EmitterError("tag must not be empty") + if tag == '!': + return tag + handle = None + suffix = tag + prefixes = sorted(self.tag_prefixes.keys()) + for prefix in prefixes: + if tag.startswith(prefix) \ + and (prefix == '!' or len(prefix) < len(tag)): + handle = self.tag_prefixes[prefix] + suffix = tag[len(prefix):] + chunks = [] + start = end = 0 + while end < len(suffix): + ch = suffix[end] + if '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-;/?:@&=+$,_.~*\'()[]' \ + or (ch == '!' and handle != '!'): + end += 1 + else: + if start < end: + chunks.append(suffix[start:end]) + start = end = end+1 + data = ch.encode('utf-8') + for ch in data: + chunks.append('%%%02X' % ch) + if start < end: + chunks.append(suffix[start:end]) + suffix_text = ''.join(chunks) + if handle: + return '%s%s' % (handle, suffix_text) + else: + return '!<%s>' % suffix_text + + def prepare_anchor(self, anchor): + if not anchor: + raise EmitterError("anchor must not be empty") + for ch in anchor: + if not ('0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-_'): + raise EmitterError("invalid character %r in the anchor: %r" + % (ch, anchor)) + return anchor + + def analyze_scalar(self, scalar): + + # Empty scalar is a special case. + if not scalar: + return ScalarAnalysis(scalar=scalar, empty=True, multiline=False, + allow_flow_plain=False, allow_block_plain=True, + allow_single_quoted=True, allow_double_quoted=True, + allow_block=False) + + # Indicators and special characters. + block_indicators = False + flow_indicators = False + line_breaks = False + special_characters = False + + # Important whitespace combinations. + leading_space = False + leading_break = False + trailing_space = False + trailing_break = False + break_space = False + space_break = False + + # Check document indicators. + if scalar.startswith('---') or scalar.startswith('...'): + block_indicators = True + flow_indicators = True + + # First character or preceded by a whitespace. + preceded_by_whitespace = True + + # Last character or followed by a whitespace. + followed_by_whitespace = (len(scalar) == 1 or + scalar[1] in '\0 \t\r\n\x85\u2028\u2029') + + # The previous character is a space. + previous_space = False + + # The previous character is a break. + previous_break = False + + index = 0 + while index < len(scalar): + ch = scalar[index] + + # Check for indicators. + if index == 0: + # Leading indicators are special characters. + if ch in '#,[]{}&*!|>\'\"%@`': + flow_indicators = True + block_indicators = True + if ch in '?:': + flow_indicators = True + if followed_by_whitespace: + block_indicators = True + if ch == '-' and followed_by_whitespace: + flow_indicators = True + block_indicators = True + else: + # Some indicators cannot appear within a scalar as well. + if ch in ',?[]{}': + flow_indicators = True + if ch == ':': + flow_indicators = True + if followed_by_whitespace: + block_indicators = True + if ch == '#' and preceded_by_whitespace: + flow_indicators = True + block_indicators = True + + # Check for line breaks, special, and unicode characters. + if ch in '\n\x85\u2028\u2029': + line_breaks = True + if not (ch == '\n' or '\x20' <= ch <= '\x7E'): + if (ch == '\x85' or '\xA0' <= ch <= '\uD7FF' + or '\uE000' <= ch <= '\uFFFD' + or '\U00010000' <= ch < '\U0010ffff') and ch != '\uFEFF': + unicode_characters = True + if not self.allow_unicode: + special_characters = True + else: + special_characters = True + + # Detect important whitespace combinations. + if ch == ' ': + if index == 0: + leading_space = True + if index == len(scalar)-1: + trailing_space = True + if previous_break: + break_space = True + previous_space = True + previous_break = False + elif ch in '\n\x85\u2028\u2029': + if index == 0: + leading_break = True + if index == len(scalar)-1: + trailing_break = True + if previous_space: + space_break = True + previous_space = False + previous_break = True + else: + previous_space = False + previous_break = False + + # Prepare for the next character. + index += 1 + preceded_by_whitespace = (ch in '\0 \t\r\n\x85\u2028\u2029') + followed_by_whitespace = (index+1 >= len(scalar) or + scalar[index+1] in '\0 \t\r\n\x85\u2028\u2029') + + # Let's decide what styles are allowed. + allow_flow_plain = True + allow_block_plain = True + allow_single_quoted = True + allow_double_quoted = True + allow_block = True + + # Leading and trailing whitespaces are bad for plain scalars. + if (leading_space or leading_break + or trailing_space or trailing_break): + allow_flow_plain = allow_block_plain = False + + # We do not permit trailing spaces for block scalars. + if trailing_space: + allow_block = False + + # Spaces at the beginning of a new line are only acceptable for block + # scalars. + if break_space: + allow_flow_plain = allow_block_plain = allow_single_quoted = False + + # Spaces followed by breaks, as well as special character are only + # allowed for double quoted scalars. + if space_break or special_characters: + allow_flow_plain = allow_block_plain = \ + allow_single_quoted = allow_block = False + + # Although the plain scalar writer supports breaks, we never emit + # multiline plain scalars. + if line_breaks: + allow_flow_plain = allow_block_plain = False + + # Flow indicators are forbidden for flow plain scalars. + if flow_indicators: + allow_flow_plain = False + + # Block indicators are forbidden for block plain scalars. + if block_indicators: + allow_block_plain = False + + return ScalarAnalysis(scalar=scalar, + empty=False, multiline=line_breaks, + allow_flow_plain=allow_flow_plain, + allow_block_plain=allow_block_plain, + allow_single_quoted=allow_single_quoted, + allow_double_quoted=allow_double_quoted, + allow_block=allow_block) + + # Writers. + + def flush_stream(self): + if hasattr(self.stream, 'flush'): + self.stream.flush() + + def write_stream_start(self): + # Write BOM if needed. + if self.encoding and self.encoding.startswith('utf-16'): + self.stream.write('\uFEFF'.encode(self.encoding)) + + def write_stream_end(self): + self.flush_stream() + + def write_indicator(self, indicator, need_whitespace, + whitespace=False, indention=False): + if self.whitespace or not need_whitespace: + data = indicator + else: + data = ' '+indicator + self.whitespace = whitespace + self.indention = self.indention and indention + self.column += len(data) + self.open_ended = False + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + + def write_indent(self): + indent = self.indent or 0 + if not self.indention or self.column > indent \ + or (self.column == indent and not self.whitespace): + self.write_line_break() + if self.column < indent: + self.whitespace = True + data = ' '*(indent-self.column) + self.column = indent + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + + def write_line_break(self, data=None): + if data is None: + data = self.best_line_break + self.whitespace = True + self.indention = True + self.line += 1 + self.column = 0 + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + + def write_version_directive(self, version_text): + data = '%%YAML %s' % version_text + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.write_line_break() + + def write_tag_directive(self, handle_text, prefix_text): + data = '%%TAG %s %s' % (handle_text, prefix_text) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.write_line_break() + + # Scalar streams. + + def write_single_quoted(self, text, split=True): + self.write_indicator('\'', True) + spaces = False + breaks = False + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if spaces: + if ch is None or ch != ' ': + if start+1 == end and self.column > self.best_width and split \ + and start != 0 and end != len(text): + self.write_indent() + else: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + elif breaks: + if ch is None or ch not in '\n\x85\u2028\u2029': + if text[start] == '\n': + self.write_line_break() + for br in text[start:end]: + if br == '\n': + self.write_line_break() + else: + self.write_line_break(br) + self.write_indent() + start = end + else: + if ch is None or ch in ' \n\x85\u2028\u2029' or ch == '\'': + if start < end: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + if ch == '\'': + data = '\'\'' + self.column += 2 + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + 1 + if ch is not None: + spaces = (ch == ' ') + breaks = (ch in '\n\x85\u2028\u2029') + end += 1 + self.write_indicator('\'', False) + + ESCAPE_REPLACEMENTS = { + '\0': '0', + '\x07': 'a', + '\x08': 'b', + '\x09': 't', + '\x0A': 'n', + '\x0B': 'v', + '\x0C': 'f', + '\x0D': 'r', + '\x1B': 'e', + '\"': '\"', + '\\': '\\', + '\x85': 'N', + '\xA0': '_', + '\u2028': 'L', + '\u2029': 'P', + } + + def write_double_quoted(self, text, split=True): + self.write_indicator('"', True) + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if ch is None or ch in '"\\\x85\u2028\u2029\uFEFF' \ + or not ('\x20' <= ch <= '\x7E' + or (self.allow_unicode + and ('\xA0' <= ch <= '\uD7FF' + or '\uE000' <= ch <= '\uFFFD'))): + if start < end: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + if ch is not None: + if ch in self.ESCAPE_REPLACEMENTS: + data = '\\'+self.ESCAPE_REPLACEMENTS[ch] + elif ch <= '\xFF': + data = '\\x%02X' % ord(ch) + elif ch <= '\uFFFF': + data = '\\u%04X' % ord(ch) + else: + data = '\\U%08X' % ord(ch) + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end+1 + if 0 < end < len(text)-1 and (ch == ' ' or start >= end) \ + and self.column+(end-start) > self.best_width and split: + data = text[start:end]+'\\' + if start < end: + start = end + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.write_indent() + self.whitespace = False + self.indention = False + if text[start] == ' ': + data = '\\' + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + end += 1 + self.write_indicator('"', False) + + def determine_block_hints(self, text): + hints = '' + if text: + if text[0] in ' \n\x85\u2028\u2029': + hints += str(self.best_indent) + if text[-1] not in '\n\x85\u2028\u2029': + hints += '-' + elif len(text) == 1 or text[-2] in '\n\x85\u2028\u2029': + hints += '+' + return hints + + def write_folded(self, text): + hints = self.determine_block_hints(text) + self.write_indicator('>'+hints, True) + if hints[-1:] == '+': + self.open_ended = True + self.write_line_break() + leading_space = True + spaces = False + breaks = True + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if breaks: + if ch is None or ch not in '\n\x85\u2028\u2029': + if not leading_space and ch is not None and ch != ' ' \ + and text[start] == '\n': + self.write_line_break() + leading_space = (ch == ' ') + for br in text[start:end]: + if br == '\n': + self.write_line_break() + else: + self.write_line_break(br) + if ch is not None: + self.write_indent() + start = end + elif spaces: + if ch != ' ': + if start+1 == end and self.column > self.best_width: + self.write_indent() + else: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + else: + if ch is None or ch in ' \n\x85\u2028\u2029': + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + if ch is None: + self.write_line_break() + start = end + if ch is not None: + breaks = (ch in '\n\x85\u2028\u2029') + spaces = (ch == ' ') + end += 1 + + def write_literal(self, text): + hints = self.determine_block_hints(text) + self.write_indicator('|'+hints, True) + if hints[-1:] == '+': + self.open_ended = True + self.write_line_break() + breaks = True + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if breaks: + if ch is None or ch not in '\n\x85\u2028\u2029': + for br in text[start:end]: + if br == '\n': + self.write_line_break() + else: + self.write_line_break(br) + if ch is not None: + self.write_indent() + start = end + else: + if ch is None or ch in '\n\x85\u2028\u2029': + data = text[start:end] + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + if ch is None: + self.write_line_break() + start = end + if ch is not None: + breaks = (ch in '\n\x85\u2028\u2029') + end += 1 + + def write_plain(self, text, split=True): + if self.root_context: + self.open_ended = True + if not text: + return + if not self.whitespace: + data = ' ' + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + self.whitespace = False + self.indention = False + spaces = False + breaks = False + start = end = 0 + while end <= len(text): + ch = None + if end < len(text): + ch = text[end] + if spaces: + if ch != ' ': + if start+1 == end and self.column > self.best_width and split: + self.write_indent() + self.whitespace = False + self.indention = False + else: + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + elif breaks: + if ch not in '\n\x85\u2028\u2029': + if text[start] == '\n': + self.write_line_break() + for br in text[start:end]: + if br == '\n': + self.write_line_break() + else: + self.write_line_break(br) + self.write_indent() + self.whitespace = False + self.indention = False + start = end + else: + if ch is None or ch in ' \n\x85\u2028\u2029': + data = text[start:end] + self.column += len(data) + if self.encoding: + data = data.encode(self.encoding) + self.stream.write(data) + start = end + if ch is not None: + spaces = (ch == ' ') + breaks = (ch in '\n\x85\u2028\u2029') + end += 1 diff --git a/lib/yaml/error.py b/lib/yaml/error.py new file mode 100644 index 0000000..b796b4d --- /dev/null +++ b/lib/yaml/error.py @@ -0,0 +1,75 @@ + +__all__ = ['Mark', 'YAMLError', 'MarkedYAMLError'] + +class Mark: + + def __init__(self, name, index, line, column, buffer, pointer): + self.name = name + self.index = index + self.line = line + self.column = column + self.buffer = buffer + self.pointer = pointer + + def get_snippet(self, indent=4, max_length=75): + if self.buffer is None: + return None + head = '' + start = self.pointer + while start > 0 and self.buffer[start-1] not in '\0\r\n\x85\u2028\u2029': + start -= 1 + if self.pointer-start > max_length/2-1: + head = ' ... ' + start += 5 + break + tail = '' + end = self.pointer + while end < len(self.buffer) and self.buffer[end] not in '\0\r\n\x85\u2028\u2029': + end += 1 + if end-self.pointer > max_length/2-1: + tail = ' ... ' + end -= 5 + break + snippet = self.buffer[start:end] + return ' '*indent + head + snippet + tail + '\n' \ + + ' '*(indent+self.pointer-start+len(head)) + '^' + + def __str__(self): + snippet = self.get_snippet() + where = " in \"%s\", line %d, column %d" \ + % (self.name, self.line+1, self.column+1) + if snippet is not None: + where += ":\n"+snippet + return where + +class YAMLError(Exception): + pass + +class MarkedYAMLError(YAMLError): + + def __init__(self, context=None, context_mark=None, + problem=None, problem_mark=None, note=None): + self.context = context + self.context_mark = context_mark + self.problem = problem + self.problem_mark = problem_mark + self.note = note + + def __str__(self): + lines = [] + if self.context is not None: + lines.append(self.context) + if self.context_mark is not None \ + and (self.problem is None or self.problem_mark is None + or self.context_mark.name != self.problem_mark.name + or self.context_mark.line != self.problem_mark.line + or self.context_mark.column != self.problem_mark.column): + lines.append(str(self.context_mark)) + if self.problem is not None: + lines.append(self.problem) + if self.problem_mark is not None: + lines.append(str(self.problem_mark)) + if self.note is not None: + lines.append(self.note) + return '\n'.join(lines) + diff --git a/lib/yaml/events.py b/lib/yaml/events.py new file mode 100644 index 0000000..f79ad38 --- /dev/null +++ b/lib/yaml/events.py @@ -0,0 +1,86 @@ + +# Abstract classes. + +class Event(object): + def __init__(self, start_mark=None, end_mark=None): + self.start_mark = start_mark + self.end_mark = end_mark + def __repr__(self): + attributes = [key for key in ['anchor', 'tag', 'implicit', 'value'] + if hasattr(self, key)] + arguments = ', '.join(['%s=%r' % (key, getattr(self, key)) + for key in attributes]) + return '%s(%s)' % (self.__class__.__name__, arguments) + +class NodeEvent(Event): + def __init__(self, anchor, start_mark=None, end_mark=None): + self.anchor = anchor + self.start_mark = start_mark + self.end_mark = end_mark + +class CollectionStartEvent(NodeEvent): + def __init__(self, anchor, tag, implicit, start_mark=None, end_mark=None, + flow_style=None): + self.anchor = anchor + self.tag = tag + self.implicit = implicit + self.start_mark = start_mark + self.end_mark = end_mark + self.flow_style = flow_style + +class CollectionEndEvent(Event): + pass + +# Implementations. + +class StreamStartEvent(Event): + def __init__(self, start_mark=None, end_mark=None, encoding=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.encoding = encoding + +class StreamEndEvent(Event): + pass + +class DocumentStartEvent(Event): + def __init__(self, start_mark=None, end_mark=None, + explicit=None, version=None, tags=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.explicit = explicit + self.version = version + self.tags = tags + +class DocumentEndEvent(Event): + def __init__(self, start_mark=None, end_mark=None, + explicit=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.explicit = explicit + +class AliasEvent(NodeEvent): + pass + +class ScalarEvent(NodeEvent): + def __init__(self, anchor, tag, implicit, value, + start_mark=None, end_mark=None, style=None): + self.anchor = anchor + self.tag = tag + self.implicit = implicit + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + self.style = style + +class SequenceStartEvent(CollectionStartEvent): + pass + +class SequenceEndEvent(CollectionEndEvent): + pass + +class MappingStartEvent(CollectionStartEvent): + pass + +class MappingEndEvent(CollectionEndEvent): + pass + diff --git a/lib/yaml/loader.py b/lib/yaml/loader.py new file mode 100644 index 0000000..e90c112 --- /dev/null +++ b/lib/yaml/loader.py @@ -0,0 +1,63 @@ + +__all__ = ['BaseLoader', 'FullLoader', 'SafeLoader', 'Loader', 'UnsafeLoader'] + +from .reader import * +from .scanner import * +from .parser import * +from .composer import * +from .constructor import * +from .resolver import * + +class BaseLoader(Reader, Scanner, Parser, Composer, BaseConstructor, BaseResolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + BaseConstructor.__init__(self) + BaseResolver.__init__(self) + +class FullLoader(Reader, Scanner, Parser, Composer, FullConstructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + FullConstructor.__init__(self) + Resolver.__init__(self) + +class SafeLoader(Reader, Scanner, Parser, Composer, SafeConstructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + SafeConstructor.__init__(self) + Resolver.__init__(self) + +class Loader(Reader, Scanner, Parser, Composer, Constructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + Constructor.__init__(self) + Resolver.__init__(self) + +# UnsafeLoader is the same as Loader (which is and was always unsafe on +# untrusted input). Use of either Loader or UnsafeLoader should be rare, since +# FullLoad should be able to load almost all YAML safely. Loader is left intact +# to ensure backwards compatibility. +class UnsafeLoader(Reader, Scanner, Parser, Composer, Constructor, Resolver): + + def __init__(self, stream): + Reader.__init__(self, stream) + Scanner.__init__(self) + Parser.__init__(self) + Composer.__init__(self) + Constructor.__init__(self) + Resolver.__init__(self) diff --git a/lib/yaml/nodes.py b/lib/yaml/nodes.py new file mode 100644 index 0000000..c4f070c --- /dev/null +++ b/lib/yaml/nodes.py @@ -0,0 +1,49 @@ + +class Node(object): + def __init__(self, tag, value, start_mark, end_mark): + self.tag = tag + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + def __repr__(self): + value = self.value + #if isinstance(value, list): + # if len(value) == 0: + # value = '' + # elif len(value) == 1: + # value = '<1 item>' + # else: + # value = '<%d items>' % len(value) + #else: + # if len(value) > 75: + # value = repr(value[:70]+u' ... ') + # else: + # value = repr(value) + value = repr(value) + return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value) + +class ScalarNode(Node): + id = 'scalar' + def __init__(self, tag, value, + start_mark=None, end_mark=None, style=None): + self.tag = tag + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + self.style = style + +class CollectionNode(Node): + def __init__(self, tag, value, + start_mark=None, end_mark=None, flow_style=None): + self.tag = tag + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + self.flow_style = flow_style + +class SequenceNode(CollectionNode): + id = 'sequence' + +class MappingNode(CollectionNode): + id = 'mapping' + diff --git a/lib/yaml/parser.py b/lib/yaml/parser.py new file mode 100644 index 0000000..13a5995 --- /dev/null +++ b/lib/yaml/parser.py @@ -0,0 +1,589 @@ + +# The following YAML grammar is LL(1) and is parsed by a recursive descent +# parser. +# +# stream ::= STREAM-START implicit_document? explicit_document* STREAM-END +# implicit_document ::= block_node DOCUMENT-END* +# explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* +# block_node_or_indentless_sequence ::= +# ALIAS +# | properties (block_content | indentless_block_sequence)? +# | block_content +# | indentless_block_sequence +# block_node ::= ALIAS +# | properties block_content? +# | block_content +# flow_node ::= ALIAS +# | properties flow_content? +# | flow_content +# properties ::= TAG ANCHOR? | ANCHOR TAG? +# block_content ::= block_collection | flow_collection | SCALAR +# flow_content ::= flow_collection | SCALAR +# block_collection ::= block_sequence | block_mapping +# flow_collection ::= flow_sequence | flow_mapping +# block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END +# indentless_sequence ::= (BLOCK-ENTRY block_node?)+ +# block_mapping ::= BLOCK-MAPPING_START +# ((KEY block_node_or_indentless_sequence?)? +# (VALUE block_node_or_indentless_sequence?)?)* +# BLOCK-END +# flow_sequence ::= FLOW-SEQUENCE-START +# (flow_sequence_entry FLOW-ENTRY)* +# flow_sequence_entry? +# FLOW-SEQUENCE-END +# flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +# flow_mapping ::= FLOW-MAPPING-START +# (flow_mapping_entry FLOW-ENTRY)* +# flow_mapping_entry? +# FLOW-MAPPING-END +# flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? +# +# FIRST sets: +# +# stream: { STREAM-START } +# explicit_document: { DIRECTIVE DOCUMENT-START } +# implicit_document: FIRST(block_node) +# block_node: { ALIAS TAG ANCHOR SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START } +# flow_node: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START } +# block_content: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR } +# flow_content: { FLOW-SEQUENCE-START FLOW-MAPPING-START SCALAR } +# block_collection: { BLOCK-SEQUENCE-START BLOCK-MAPPING-START } +# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START } +# block_sequence: { BLOCK-SEQUENCE-START } +# block_mapping: { BLOCK-MAPPING-START } +# block_node_or_indentless_sequence: { ALIAS ANCHOR TAG SCALAR BLOCK-SEQUENCE-START BLOCK-MAPPING-START FLOW-SEQUENCE-START FLOW-MAPPING-START BLOCK-ENTRY } +# indentless_sequence: { ENTRY } +# flow_collection: { FLOW-SEQUENCE-START FLOW-MAPPING-START } +# flow_sequence: { FLOW-SEQUENCE-START } +# flow_mapping: { FLOW-MAPPING-START } +# flow_sequence_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY } +# flow_mapping_entry: { ALIAS ANCHOR TAG SCALAR FLOW-SEQUENCE-START FLOW-MAPPING-START KEY } + +__all__ = ['Parser', 'ParserError'] + +from .error import MarkedYAMLError +from .tokens import * +from .events import * +from .scanner import * + +class ParserError(MarkedYAMLError): + pass + +class Parser: + # Since writing a recursive-descendant parser is a straightforward task, we + # do not give many comments here. + + DEFAULT_TAGS = { + '!': '!', + '!!': 'tag:yaml.org,2002:', + } + + def __init__(self): + self.current_event = None + self.yaml_version = None + self.tag_handles = {} + self.states = [] + self.marks = [] + self.state = self.parse_stream_start + + def dispose(self): + # Reset the state attributes (to clear self-references) + self.states = [] + self.state = None + + def check_event(self, *choices): + # Check the type of the next event. + if self.current_event is None: + if self.state: + self.current_event = self.state() + if self.current_event is not None: + if not choices: + return True + for choice in choices: + if isinstance(self.current_event, choice): + return True + return False + + def peek_event(self): + # Get the next event. + if self.current_event is None: + if self.state: + self.current_event = self.state() + return self.current_event + + def get_event(self): + # Get the next event and proceed further. + if self.current_event is None: + if self.state: + self.current_event = self.state() + value = self.current_event + self.current_event = None + return value + + # stream ::= STREAM-START implicit_document? explicit_document* STREAM-END + # implicit_document ::= block_node DOCUMENT-END* + # explicit_document ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END* + + def parse_stream_start(self): + + # Parse the stream start. + token = self.get_token() + event = StreamStartEvent(token.start_mark, token.end_mark, + encoding=token.encoding) + + # Prepare the next state. + self.state = self.parse_implicit_document_start + + return event + + def parse_implicit_document_start(self): + + # Parse an implicit document. + if not self.check_token(DirectiveToken, DocumentStartToken, + StreamEndToken): + self.tag_handles = self.DEFAULT_TAGS + token = self.peek_token() + start_mark = end_mark = token.start_mark + event = DocumentStartEvent(start_mark, end_mark, + explicit=False) + + # Prepare the next state. + self.states.append(self.parse_document_end) + self.state = self.parse_block_node + + return event + + else: + return self.parse_document_start() + + def parse_document_start(self): + + # Parse any extra document end indicators. + while self.check_token(DocumentEndToken): + self.get_token() + + # Parse an explicit document. + if not self.check_token(StreamEndToken): + token = self.peek_token() + start_mark = token.start_mark + version, tags = self.process_directives() + if not self.check_token(DocumentStartToken): + raise ParserError(None, None, + "expected '', but found %r" + % self.peek_token().id, + self.peek_token().start_mark) + token = self.get_token() + end_mark = token.end_mark + event = DocumentStartEvent(start_mark, end_mark, + explicit=True, version=version, tags=tags) + self.states.append(self.parse_document_end) + self.state = self.parse_document_content + else: + # Parse the end of the stream. + token = self.get_token() + event = StreamEndEvent(token.start_mark, token.end_mark) + assert not self.states + assert not self.marks + self.state = None + return event + + def parse_document_end(self): + + # Parse the document end. + token = self.peek_token() + start_mark = end_mark = token.start_mark + explicit = False + if self.check_token(DocumentEndToken): + token = self.get_token() + end_mark = token.end_mark + explicit = True + event = DocumentEndEvent(start_mark, end_mark, + explicit=explicit) + + # Prepare the next state. + self.state = self.parse_document_start + + return event + + def parse_document_content(self): + if self.check_token(DirectiveToken, + DocumentStartToken, DocumentEndToken, StreamEndToken): + event = self.process_empty_scalar(self.peek_token().start_mark) + self.state = self.states.pop() + return event + else: + return self.parse_block_node() + + def process_directives(self): + self.yaml_version = None + self.tag_handles = {} + while self.check_token(DirectiveToken): + token = self.get_token() + if token.name == 'YAML': + if self.yaml_version is not None: + raise ParserError(None, None, + "found duplicate YAML directive", token.start_mark) + major, minor = token.value + if major != 1: + raise ParserError(None, None, + "found incompatible YAML document (version 1.* is required)", + token.start_mark) + self.yaml_version = token.value + elif token.name == 'TAG': + handle, prefix = token.value + if handle in self.tag_handles: + raise ParserError(None, None, + "duplicate tag handle %r" % handle, + token.start_mark) + self.tag_handles[handle] = prefix + if self.tag_handles: + value = self.yaml_version, self.tag_handles.copy() + else: + value = self.yaml_version, None + for key in self.DEFAULT_TAGS: + if key not in self.tag_handles: + self.tag_handles[key] = self.DEFAULT_TAGS[key] + return value + + # block_node_or_indentless_sequence ::= ALIAS + # | properties (block_content | indentless_block_sequence)? + # | block_content + # | indentless_block_sequence + # block_node ::= ALIAS + # | properties block_content? + # | block_content + # flow_node ::= ALIAS + # | properties flow_content? + # | flow_content + # properties ::= TAG ANCHOR? | ANCHOR TAG? + # block_content ::= block_collection | flow_collection | SCALAR + # flow_content ::= flow_collection | SCALAR + # block_collection ::= block_sequence | block_mapping + # flow_collection ::= flow_sequence | flow_mapping + + def parse_block_node(self): + return self.parse_node(block=True) + + def parse_flow_node(self): + return self.parse_node() + + def parse_block_node_or_indentless_sequence(self): + return self.parse_node(block=True, indentless_sequence=True) + + def parse_node(self, block=False, indentless_sequence=False): + if self.check_token(AliasToken): + token = self.get_token() + event = AliasEvent(token.value, token.start_mark, token.end_mark) + self.state = self.states.pop() + else: + anchor = None + tag = None + start_mark = end_mark = tag_mark = None + if self.check_token(AnchorToken): + token = self.get_token() + start_mark = token.start_mark + end_mark = token.end_mark + anchor = token.value + if self.check_token(TagToken): + token = self.get_token() + tag_mark = token.start_mark + end_mark = token.end_mark + tag = token.value + elif self.check_token(TagToken): + token = self.get_token() + start_mark = tag_mark = token.start_mark + end_mark = token.end_mark + tag = token.value + if self.check_token(AnchorToken): + token = self.get_token() + end_mark = token.end_mark + anchor = token.value + if tag is not None: + handle, suffix = tag + if handle is not None: + if handle not in self.tag_handles: + raise ParserError("while parsing a node", start_mark, + "found undefined tag handle %r" % handle, + tag_mark) + tag = self.tag_handles[handle]+suffix + else: + tag = suffix + #if tag == '!': + # raise ParserError("while parsing a node", start_mark, + # "found non-specific tag '!'", tag_mark, + # "Please check 'http://pyyaml.org/wiki/YAMLNonSpecificTag' and share your opinion.") + if start_mark is None: + start_mark = end_mark = self.peek_token().start_mark + event = None + implicit = (tag is None or tag == '!') + if indentless_sequence and self.check_token(BlockEntryToken): + end_mark = self.peek_token().end_mark + event = SequenceStartEvent(anchor, tag, implicit, + start_mark, end_mark) + self.state = self.parse_indentless_sequence_entry + else: + if self.check_token(ScalarToken): + token = self.get_token() + end_mark = token.end_mark + if (token.plain and tag is None) or tag == '!': + implicit = (True, False) + elif tag is None: + implicit = (False, True) + else: + implicit = (False, False) + event = ScalarEvent(anchor, tag, implicit, token.value, + start_mark, end_mark, style=token.style) + self.state = self.states.pop() + elif self.check_token(FlowSequenceStartToken): + end_mark = self.peek_token().end_mark + event = SequenceStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=True) + self.state = self.parse_flow_sequence_first_entry + elif self.check_token(FlowMappingStartToken): + end_mark = self.peek_token().end_mark + event = MappingStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=True) + self.state = self.parse_flow_mapping_first_key + elif block and self.check_token(BlockSequenceStartToken): + end_mark = self.peek_token().start_mark + event = SequenceStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=False) + self.state = self.parse_block_sequence_first_entry + elif block and self.check_token(BlockMappingStartToken): + end_mark = self.peek_token().start_mark + event = MappingStartEvent(anchor, tag, implicit, + start_mark, end_mark, flow_style=False) + self.state = self.parse_block_mapping_first_key + elif anchor is not None or tag is not None: + # Empty scalars are allowed even if a tag or an anchor is + # specified. + event = ScalarEvent(anchor, tag, (implicit, False), '', + start_mark, end_mark) + self.state = self.states.pop() + else: + if block: + node = 'block' + else: + node = 'flow' + token = self.peek_token() + raise ParserError("while parsing a %s node" % node, start_mark, + "expected the node content, but found %r" % token.id, + token.start_mark) + return event + + # block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END + + def parse_block_sequence_first_entry(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_block_sequence_entry() + + def parse_block_sequence_entry(self): + if self.check_token(BlockEntryToken): + token = self.get_token() + if not self.check_token(BlockEntryToken, BlockEndToken): + self.states.append(self.parse_block_sequence_entry) + return self.parse_block_node() + else: + self.state = self.parse_block_sequence_entry + return self.process_empty_scalar(token.end_mark) + if not self.check_token(BlockEndToken): + token = self.peek_token() + raise ParserError("while parsing a block collection", self.marks[-1], + "expected , but found %r" % token.id, token.start_mark) + token = self.get_token() + event = SequenceEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + # indentless_sequence ::= (BLOCK-ENTRY block_node?)+ + + def parse_indentless_sequence_entry(self): + if self.check_token(BlockEntryToken): + token = self.get_token() + if not self.check_token(BlockEntryToken, + KeyToken, ValueToken, BlockEndToken): + self.states.append(self.parse_indentless_sequence_entry) + return self.parse_block_node() + else: + self.state = self.parse_indentless_sequence_entry + return self.process_empty_scalar(token.end_mark) + token = self.peek_token() + event = SequenceEndEvent(token.start_mark, token.start_mark) + self.state = self.states.pop() + return event + + # block_mapping ::= BLOCK-MAPPING_START + # ((KEY block_node_or_indentless_sequence?)? + # (VALUE block_node_or_indentless_sequence?)?)* + # BLOCK-END + + def parse_block_mapping_first_key(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_block_mapping_key() + + def parse_block_mapping_key(self): + if self.check_token(KeyToken): + token = self.get_token() + if not self.check_token(KeyToken, ValueToken, BlockEndToken): + self.states.append(self.parse_block_mapping_value) + return self.parse_block_node_or_indentless_sequence() + else: + self.state = self.parse_block_mapping_value + return self.process_empty_scalar(token.end_mark) + if not self.check_token(BlockEndToken): + token = self.peek_token() + raise ParserError("while parsing a block mapping", self.marks[-1], + "expected , but found %r" % token.id, token.start_mark) + token = self.get_token() + event = MappingEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + def parse_block_mapping_value(self): + if self.check_token(ValueToken): + token = self.get_token() + if not self.check_token(KeyToken, ValueToken, BlockEndToken): + self.states.append(self.parse_block_mapping_key) + return self.parse_block_node_or_indentless_sequence() + else: + self.state = self.parse_block_mapping_key + return self.process_empty_scalar(token.end_mark) + else: + self.state = self.parse_block_mapping_key + token = self.peek_token() + return self.process_empty_scalar(token.start_mark) + + # flow_sequence ::= FLOW-SEQUENCE-START + # (flow_sequence_entry FLOW-ENTRY)* + # flow_sequence_entry? + # FLOW-SEQUENCE-END + # flow_sequence_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + # + # Note that while production rules for both flow_sequence_entry and + # flow_mapping_entry are equal, their interpretations are different. + # For `flow_sequence_entry`, the part `KEY flow_node? (VALUE flow_node?)?` + # generate an inline mapping (set syntax). + + def parse_flow_sequence_first_entry(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_flow_sequence_entry(first=True) + + def parse_flow_sequence_entry(self, first=False): + if not self.check_token(FlowSequenceEndToken): + if not first: + if self.check_token(FlowEntryToken): + self.get_token() + else: + token = self.peek_token() + raise ParserError("while parsing a flow sequence", self.marks[-1], + "expected ',' or ']', but got %r" % token.id, token.start_mark) + + if self.check_token(KeyToken): + token = self.peek_token() + event = MappingStartEvent(None, None, True, + token.start_mark, token.end_mark, + flow_style=True) + self.state = self.parse_flow_sequence_entry_mapping_key + return event + elif not self.check_token(FlowSequenceEndToken): + self.states.append(self.parse_flow_sequence_entry) + return self.parse_flow_node() + token = self.get_token() + event = SequenceEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + def parse_flow_sequence_entry_mapping_key(self): + token = self.get_token() + if not self.check_token(ValueToken, + FlowEntryToken, FlowSequenceEndToken): + self.states.append(self.parse_flow_sequence_entry_mapping_value) + return self.parse_flow_node() + else: + self.state = self.parse_flow_sequence_entry_mapping_value + return self.process_empty_scalar(token.end_mark) + + def parse_flow_sequence_entry_mapping_value(self): + if self.check_token(ValueToken): + token = self.get_token() + if not self.check_token(FlowEntryToken, FlowSequenceEndToken): + self.states.append(self.parse_flow_sequence_entry_mapping_end) + return self.parse_flow_node() + else: + self.state = self.parse_flow_sequence_entry_mapping_end + return self.process_empty_scalar(token.end_mark) + else: + self.state = self.parse_flow_sequence_entry_mapping_end + token = self.peek_token() + return self.process_empty_scalar(token.start_mark) + + def parse_flow_sequence_entry_mapping_end(self): + self.state = self.parse_flow_sequence_entry + token = self.peek_token() + return MappingEndEvent(token.start_mark, token.start_mark) + + # flow_mapping ::= FLOW-MAPPING-START + # (flow_mapping_entry FLOW-ENTRY)* + # flow_mapping_entry? + # FLOW-MAPPING-END + # flow_mapping_entry ::= flow_node | KEY flow_node? (VALUE flow_node?)? + + def parse_flow_mapping_first_key(self): + token = self.get_token() + self.marks.append(token.start_mark) + return self.parse_flow_mapping_key(first=True) + + def parse_flow_mapping_key(self, first=False): + if not self.check_token(FlowMappingEndToken): + if not first: + if self.check_token(FlowEntryToken): + self.get_token() + else: + token = self.peek_token() + raise ParserError("while parsing a flow mapping", self.marks[-1], + "expected ',' or '}', but got %r" % token.id, token.start_mark) + if self.check_token(KeyToken): + token = self.get_token() + if not self.check_token(ValueToken, + FlowEntryToken, FlowMappingEndToken): + self.states.append(self.parse_flow_mapping_value) + return self.parse_flow_node() + else: + self.state = self.parse_flow_mapping_value + return self.process_empty_scalar(token.end_mark) + elif not self.check_token(FlowMappingEndToken): + self.states.append(self.parse_flow_mapping_empty_value) + return self.parse_flow_node() + token = self.get_token() + event = MappingEndEvent(token.start_mark, token.end_mark) + self.state = self.states.pop() + self.marks.pop() + return event + + def parse_flow_mapping_value(self): + if self.check_token(ValueToken): + token = self.get_token() + if not self.check_token(FlowEntryToken, FlowMappingEndToken): + self.states.append(self.parse_flow_mapping_key) + return self.parse_flow_node() + else: + self.state = self.parse_flow_mapping_key + return self.process_empty_scalar(token.end_mark) + else: + self.state = self.parse_flow_mapping_key + token = self.peek_token() + return self.process_empty_scalar(token.start_mark) + + def parse_flow_mapping_empty_value(self): + self.state = self.parse_flow_mapping_key + return self.process_empty_scalar(self.peek_token().start_mark) + + def process_empty_scalar(self, mark): + return ScalarEvent(None, None, (True, False), '', mark, mark) + diff --git a/lib/yaml/reader.py b/lib/yaml/reader.py new file mode 100644 index 0000000..774b021 --- /dev/null +++ b/lib/yaml/reader.py @@ -0,0 +1,185 @@ +# This module contains abstractions for the input stream. You don't have to +# looks further, there are no pretty code. +# +# We define two classes here. +# +# Mark(source, line, column) +# It's just a record and its only use is producing nice error messages. +# Parser does not use it for any other purposes. +# +# Reader(source, data) +# Reader determines the encoding of `data` and converts it to unicode. +# Reader provides the following methods and attributes: +# reader.peek(length=1) - return the next `length` characters +# reader.forward(length=1) - move the current position to `length` characters. +# reader.index - the number of the current character. +# reader.line, stream.column - the line and the column of the current character. + +__all__ = ['Reader', 'ReaderError'] + +from .error import YAMLError, Mark + +import codecs, re + +class ReaderError(YAMLError): + + def __init__(self, name, position, character, encoding, reason): + self.name = name + self.character = character + self.position = position + self.encoding = encoding + self.reason = reason + + def __str__(self): + if isinstance(self.character, bytes): + return "'%s' codec can't decode byte #x%02x: %s\n" \ + " in \"%s\", position %d" \ + % (self.encoding, ord(self.character), self.reason, + self.name, self.position) + else: + return "unacceptable character #x%04x: %s\n" \ + " in \"%s\", position %d" \ + % (self.character, self.reason, + self.name, self.position) + +class Reader(object): + # Reader: + # - determines the data encoding and converts it to a unicode string, + # - checks if characters are in allowed range, + # - adds '\0' to the end. + + # Reader accepts + # - a `bytes` object, + # - a `str` object, + # - a file-like object with its `read` method returning `str`, + # - a file-like object with its `read` method returning `unicode`. + + # Yeah, it's ugly and slow. + + def __init__(self, stream): + self.name = None + self.stream = None + self.stream_pointer = 0 + self.eof = True + self.buffer = '' + self.pointer = 0 + self.raw_buffer = None + self.raw_decode = None + self.encoding = None + self.index = 0 + self.line = 0 + self.column = 0 + if isinstance(stream, str): + self.name = "" + self.check_printable(stream) + self.buffer = stream+'\0' + elif isinstance(stream, bytes): + self.name = "" + self.raw_buffer = stream + self.determine_encoding() + else: + self.stream = stream + self.name = getattr(stream, 'name', "") + self.eof = False + self.raw_buffer = None + self.determine_encoding() + + def peek(self, index=0): + try: + return self.buffer[self.pointer+index] + except IndexError: + self.update(index+1) + return self.buffer[self.pointer+index] + + def prefix(self, length=1): + if self.pointer+length >= len(self.buffer): + self.update(length) + return self.buffer[self.pointer:self.pointer+length] + + def forward(self, length=1): + if self.pointer+length+1 >= len(self.buffer): + self.update(length+1) + while length: + ch = self.buffer[self.pointer] + self.pointer += 1 + self.index += 1 + if ch in '\n\x85\u2028\u2029' \ + or (ch == '\r' and self.buffer[self.pointer] != '\n'): + self.line += 1 + self.column = 0 + elif ch != '\uFEFF': + self.column += 1 + length -= 1 + + def get_mark(self): + if self.stream is None: + return Mark(self.name, self.index, self.line, self.column, + self.buffer, self.pointer) + else: + return Mark(self.name, self.index, self.line, self.column, + None, None) + + def determine_encoding(self): + while not self.eof and (self.raw_buffer is None or len(self.raw_buffer) < 2): + self.update_raw() + if isinstance(self.raw_buffer, bytes): + if self.raw_buffer.startswith(codecs.BOM_UTF16_LE): + self.raw_decode = codecs.utf_16_le_decode + self.encoding = 'utf-16-le' + elif self.raw_buffer.startswith(codecs.BOM_UTF16_BE): + self.raw_decode = codecs.utf_16_be_decode + self.encoding = 'utf-16-be' + else: + self.raw_decode = codecs.utf_8_decode + self.encoding = 'utf-8' + self.update(1) + + NON_PRINTABLE = re.compile('[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uD7FF\uE000-\uFFFD\U00010000-\U0010ffff]') + def check_printable(self, data): + match = self.NON_PRINTABLE.search(data) + if match: + character = match.group() + position = self.index+(len(self.buffer)-self.pointer)+match.start() + raise ReaderError(self.name, position, ord(character), + 'unicode', "special characters are not allowed") + + def update(self, length): + if self.raw_buffer is None: + return + self.buffer = self.buffer[self.pointer:] + self.pointer = 0 + while len(self.buffer) < length: + if not self.eof: + self.update_raw() + if self.raw_decode is not None: + try: + data, converted = self.raw_decode(self.raw_buffer, + 'strict', self.eof) + except UnicodeDecodeError as exc: + character = self.raw_buffer[exc.start] + if self.stream is not None: + position = self.stream_pointer-len(self.raw_buffer)+exc.start + else: + position = exc.start + raise ReaderError(self.name, position, character, + exc.encoding, exc.reason) + else: + data = self.raw_buffer + converted = len(data) + self.check_printable(data) + self.buffer += data + self.raw_buffer = self.raw_buffer[converted:] + if self.eof: + self.buffer += '\0' + self.raw_buffer = None + break + + def update_raw(self, size=4096): + data = self.stream.read(size) + if self.raw_buffer is None: + self.raw_buffer = data + else: + self.raw_buffer += data + self.stream_pointer += len(data) + if not data: + self.eof = True diff --git a/lib/yaml/representer.py b/lib/yaml/representer.py new file mode 100644 index 0000000..808ca06 --- /dev/null +++ b/lib/yaml/representer.py @@ -0,0 +1,389 @@ + +__all__ = ['BaseRepresenter', 'SafeRepresenter', 'Representer', + 'RepresenterError'] + +from .error import * +from .nodes import * + +import datetime, copyreg, types, base64, collections + +class RepresenterError(YAMLError): + pass + +class BaseRepresenter: + + yaml_representers = {} + yaml_multi_representers = {} + + def __init__(self, default_style=None, default_flow_style=False, sort_keys=True): + self.default_style = default_style + self.sort_keys = sort_keys + self.default_flow_style = default_flow_style + self.represented_objects = {} + self.object_keeper = [] + self.alias_key = None + + def represent(self, data): + node = self.represent_data(data) + self.serialize(node) + self.represented_objects = {} + self.object_keeper = [] + self.alias_key = None + + def represent_data(self, data): + if self.ignore_aliases(data): + self.alias_key = None + else: + self.alias_key = id(data) + if self.alias_key is not None: + if self.alias_key in self.represented_objects: + node = self.represented_objects[self.alias_key] + #if node is None: + # raise RepresenterError("recursive objects are not allowed: %r" % data) + return node + #self.represented_objects[alias_key] = None + self.object_keeper.append(data) + data_types = type(data).__mro__ + if data_types[0] in self.yaml_representers: + node = self.yaml_representers[data_types[0]](self, data) + else: + for data_type in data_types: + if data_type in self.yaml_multi_representers: + node = self.yaml_multi_representers[data_type](self, data) + break + else: + if None in self.yaml_multi_representers: + node = self.yaml_multi_representers[None](self, data) + elif None in self.yaml_representers: + node = self.yaml_representers[None](self, data) + else: + node = ScalarNode(None, str(data)) + #if alias_key is not None: + # self.represented_objects[alias_key] = node + return node + + @classmethod + def add_representer(cls, data_type, representer): + if not 'yaml_representers' in cls.__dict__: + cls.yaml_representers = cls.yaml_representers.copy() + cls.yaml_representers[data_type] = representer + + @classmethod + def add_multi_representer(cls, data_type, representer): + if not 'yaml_multi_representers' in cls.__dict__: + cls.yaml_multi_representers = cls.yaml_multi_representers.copy() + cls.yaml_multi_representers[data_type] = representer + + def represent_scalar(self, tag, value, style=None): + if style is None: + style = self.default_style + node = ScalarNode(tag, value, style=style) + if self.alias_key is not None: + self.represented_objects[self.alias_key] = node + return node + + def represent_sequence(self, tag, sequence, flow_style=None): + value = [] + node = SequenceNode(tag, value, flow_style=flow_style) + if self.alias_key is not None: + self.represented_objects[self.alias_key] = node + best_style = True + for item in sequence: + node_item = self.represent_data(item) + if not (isinstance(node_item, ScalarNode) and not node_item.style): + best_style = False + value.append(node_item) + if flow_style is None: + if self.default_flow_style is not None: + node.flow_style = self.default_flow_style + else: + node.flow_style = best_style + return node + + def represent_mapping(self, tag, mapping, flow_style=None): + value = [] + node = MappingNode(tag, value, flow_style=flow_style) + if self.alias_key is not None: + self.represented_objects[self.alias_key] = node + best_style = True + if hasattr(mapping, 'items'): + mapping = list(mapping.items()) + if self.sort_keys: + try: + mapping = sorted(mapping) + except TypeError: + pass + for item_key, item_value in mapping: + node_key = self.represent_data(item_key) + node_value = self.represent_data(item_value) + if not (isinstance(node_key, ScalarNode) and not node_key.style): + best_style = False + if not (isinstance(node_value, ScalarNode) and not node_value.style): + best_style = False + value.append((node_key, node_value)) + if flow_style is None: + if self.default_flow_style is not None: + node.flow_style = self.default_flow_style + else: + node.flow_style = best_style + return node + + def ignore_aliases(self, data): + return False + +class SafeRepresenter(BaseRepresenter): + + def ignore_aliases(self, data): + if data is None: + return True + if isinstance(data, tuple) and data == (): + return True + if isinstance(data, (str, bytes, bool, int, float)): + return True + + def represent_none(self, data): + return self.represent_scalar('tag:yaml.org,2002:null', 'null') + + def represent_str(self, data): + return self.represent_scalar('tag:yaml.org,2002:str', data) + + def represent_binary(self, data): + if hasattr(base64, 'encodebytes'): + data = base64.encodebytes(data).decode('ascii') + else: + data = base64.encodestring(data).decode('ascii') + return self.represent_scalar('tag:yaml.org,2002:binary', data, style='|') + + def represent_bool(self, data): + if data: + value = 'true' + else: + value = 'false' + return self.represent_scalar('tag:yaml.org,2002:bool', value) + + def represent_int(self, data): + return self.represent_scalar('tag:yaml.org,2002:int', str(data)) + + inf_value = 1e300 + while repr(inf_value) != repr(inf_value*inf_value): + inf_value *= inf_value + + def represent_float(self, data): + if data != data or (data == 0.0 and data == 1.0): + value = '.nan' + elif data == self.inf_value: + value = '.inf' + elif data == -self.inf_value: + value = '-.inf' + else: + value = repr(data).lower() + # Note that in some cases `repr(data)` represents a float number + # without the decimal parts. For instance: + # >>> repr(1e17) + # '1e17' + # Unfortunately, this is not a valid float representation according + # to the definition of the `!!float` tag. We fix this by adding + # '.0' before the 'e' symbol. + if '.' not in value and 'e' in value: + value = value.replace('e', '.0e', 1) + return self.represent_scalar('tag:yaml.org,2002:float', value) + + def represent_list(self, data): + #pairs = (len(data) > 0 and isinstance(data, list)) + #if pairs: + # for item in data: + # if not isinstance(item, tuple) or len(item) != 2: + # pairs = False + # break + #if not pairs: + return self.represent_sequence('tag:yaml.org,2002:seq', data) + #value = [] + #for item_key, item_value in data: + # value.append(self.represent_mapping(u'tag:yaml.org,2002:map', + # [(item_key, item_value)])) + #return SequenceNode(u'tag:yaml.org,2002:pairs', value) + + def represent_dict(self, data): + return self.represent_mapping('tag:yaml.org,2002:map', data) + + def represent_set(self, data): + value = {} + for key in data: + value[key] = None + return self.represent_mapping('tag:yaml.org,2002:set', value) + + def represent_date(self, data): + value = data.isoformat() + return self.represent_scalar('tag:yaml.org,2002:timestamp', value) + + def represent_datetime(self, data): + value = data.isoformat(' ') + return self.represent_scalar('tag:yaml.org,2002:timestamp', value) + + def represent_yaml_object(self, tag, data, cls, flow_style=None): + if hasattr(data, '__getstate__'): + state = data.__getstate__() + else: + state = data.__dict__.copy() + return self.represent_mapping(tag, state, flow_style=flow_style) + + def represent_undefined(self, data): + raise RepresenterError("cannot represent an object", data) + +SafeRepresenter.add_representer(type(None), + SafeRepresenter.represent_none) + +SafeRepresenter.add_representer(str, + SafeRepresenter.represent_str) + +SafeRepresenter.add_representer(bytes, + SafeRepresenter.represent_binary) + +SafeRepresenter.add_representer(bool, + SafeRepresenter.represent_bool) + +SafeRepresenter.add_representer(int, + SafeRepresenter.represent_int) + +SafeRepresenter.add_representer(float, + SafeRepresenter.represent_float) + +SafeRepresenter.add_representer(list, + SafeRepresenter.represent_list) + +SafeRepresenter.add_representer(tuple, + SafeRepresenter.represent_list) + +SafeRepresenter.add_representer(dict, + SafeRepresenter.represent_dict) + +SafeRepresenter.add_representer(set, + SafeRepresenter.represent_set) + +SafeRepresenter.add_representer(datetime.date, + SafeRepresenter.represent_date) + +SafeRepresenter.add_representer(datetime.datetime, + SafeRepresenter.represent_datetime) + +SafeRepresenter.add_representer(None, + SafeRepresenter.represent_undefined) + +class Representer(SafeRepresenter): + + def represent_complex(self, data): + if data.imag == 0.0: + data = '%r' % data.real + elif data.real == 0.0: + data = '%rj' % data.imag + elif data.imag > 0: + data = '%r+%rj' % (data.real, data.imag) + else: + data = '%r%rj' % (data.real, data.imag) + return self.represent_scalar('tag:yaml.org,2002:python/complex', data) + + def represent_tuple(self, data): + return self.represent_sequence('tag:yaml.org,2002:python/tuple', data) + + def represent_name(self, data): + name = '%s.%s' % (data.__module__, data.__name__) + return self.represent_scalar('tag:yaml.org,2002:python/name:'+name, '') + + def represent_module(self, data): + return self.represent_scalar( + 'tag:yaml.org,2002:python/module:'+data.__name__, '') + + def represent_object(self, data): + # We use __reduce__ API to save the data. data.__reduce__ returns + # a tuple of length 2-5: + # (function, args, state, listitems, dictitems) + + # For reconstructing, we calls function(*args), then set its state, + # listitems, and dictitems if they are not None. + + # A special case is when function.__name__ == '__newobj__'. In this + # case we create the object with args[0].__new__(*args). + + # Another special case is when __reduce__ returns a string - we don't + # support it. + + # We produce a !!python/object, !!python/object/new or + # !!python/object/apply node. + + cls = type(data) + if cls in copyreg.dispatch_table: + reduce = copyreg.dispatch_table[cls](data) + elif hasattr(data, '__reduce_ex__'): + reduce = data.__reduce_ex__(2) + elif hasattr(data, '__reduce__'): + reduce = data.__reduce__() + else: + raise RepresenterError("cannot represent an object", data) + reduce = (list(reduce)+[None]*5)[:5] + function, args, state, listitems, dictitems = reduce + args = list(args) + if state is None: + state = {} + if listitems is not None: + listitems = list(listitems) + if dictitems is not None: + dictitems = dict(dictitems) + if function.__name__ == '__newobj__': + function = args[0] + args = args[1:] + tag = 'tag:yaml.org,2002:python/object/new:' + newobj = True + else: + tag = 'tag:yaml.org,2002:python/object/apply:' + newobj = False + function_name = '%s.%s' % (function.__module__, function.__name__) + if not args and not listitems and not dictitems \ + and isinstance(state, dict) and newobj: + return self.represent_mapping( + 'tag:yaml.org,2002:python/object:'+function_name, state) + if not listitems and not dictitems \ + and isinstance(state, dict) and not state: + return self.represent_sequence(tag+function_name, args) + value = {} + if args: + value['args'] = args + if state or not isinstance(state, dict): + value['state'] = state + if listitems: + value['listitems'] = listitems + if dictitems: + value['dictitems'] = dictitems + return self.represent_mapping(tag+function_name, value) + + def represent_ordered_dict(self, data): + # Provide uniform representation across different Python versions. + data_type = type(data) + tag = 'tag:yaml.org,2002:python/object/apply:%s.%s' \ + % (data_type.__module__, data_type.__name__) + items = [[key, value] for key, value in data.items()] + return self.represent_sequence(tag, [items]) + +Representer.add_representer(complex, + Representer.represent_complex) + +Representer.add_representer(tuple, + Representer.represent_tuple) + +Representer.add_multi_representer(type, + Representer.represent_name) + +Representer.add_representer(collections.OrderedDict, + Representer.represent_ordered_dict) + +Representer.add_representer(types.FunctionType, + Representer.represent_name) + +Representer.add_representer(types.BuiltinFunctionType, + Representer.represent_name) + +Representer.add_representer(types.ModuleType, + Representer.represent_module) + +Representer.add_multi_representer(object, + Representer.represent_object) + diff --git a/lib/yaml/resolver.py b/lib/yaml/resolver.py new file mode 100644 index 0000000..3522bda --- /dev/null +++ b/lib/yaml/resolver.py @@ -0,0 +1,227 @@ + +__all__ = ['BaseResolver', 'Resolver'] + +from .error import * +from .nodes import * + +import re + +class ResolverError(YAMLError): + pass + +class BaseResolver: + + DEFAULT_SCALAR_TAG = 'tag:yaml.org,2002:str' + DEFAULT_SEQUENCE_TAG = 'tag:yaml.org,2002:seq' + DEFAULT_MAPPING_TAG = 'tag:yaml.org,2002:map' + + yaml_implicit_resolvers = {} + yaml_path_resolvers = {} + + def __init__(self): + self.resolver_exact_paths = [] + self.resolver_prefix_paths = [] + + @classmethod + def add_implicit_resolver(cls, tag, regexp, first): + if not 'yaml_implicit_resolvers' in cls.__dict__: + implicit_resolvers = {} + for key in cls.yaml_implicit_resolvers: + implicit_resolvers[key] = cls.yaml_implicit_resolvers[key][:] + cls.yaml_implicit_resolvers = implicit_resolvers + if first is None: + first = [None] + for ch in first: + cls.yaml_implicit_resolvers.setdefault(ch, []).append((tag, regexp)) + + @classmethod + def add_path_resolver(cls, tag, path, kind=None): + # Note: `add_path_resolver` is experimental. The API could be changed. + # `new_path` is a pattern that is matched against the path from the + # root to the node that is being considered. `node_path` elements are + # tuples `(node_check, index_check)`. `node_check` is a node class: + # `ScalarNode`, `SequenceNode`, `MappingNode` or `None`. `None` + # matches any kind of a node. `index_check` could be `None`, a boolean + # value, a string value, or a number. `None` and `False` match against + # any _value_ of sequence and mapping nodes. `True` matches against + # any _key_ of a mapping node. A string `index_check` matches against + # a mapping value that corresponds to a scalar key which content is + # equal to the `index_check` value. An integer `index_check` matches + # against a sequence value with the index equal to `index_check`. + if not 'yaml_path_resolvers' in cls.__dict__: + cls.yaml_path_resolvers = cls.yaml_path_resolvers.copy() + new_path = [] + for element in path: + if isinstance(element, (list, tuple)): + if len(element) == 2: + node_check, index_check = element + elif len(element) == 1: + node_check = element[0] + index_check = True + else: + raise ResolverError("Invalid path element: %s" % element) + else: + node_check = None + index_check = element + if node_check is str: + node_check = ScalarNode + elif node_check is list: + node_check = SequenceNode + elif node_check is dict: + node_check = MappingNode + elif node_check not in [ScalarNode, SequenceNode, MappingNode] \ + and not isinstance(node_check, str) \ + and node_check is not None: + raise ResolverError("Invalid node checker: %s" % node_check) + if not isinstance(index_check, (str, int)) \ + and index_check is not None: + raise ResolverError("Invalid index checker: %s" % index_check) + new_path.append((node_check, index_check)) + if kind is str: + kind = ScalarNode + elif kind is list: + kind = SequenceNode + elif kind is dict: + kind = MappingNode + elif kind not in [ScalarNode, SequenceNode, MappingNode] \ + and kind is not None: + raise ResolverError("Invalid node kind: %s" % kind) + cls.yaml_path_resolvers[tuple(new_path), kind] = tag + + def descend_resolver(self, current_node, current_index): + if not self.yaml_path_resolvers: + return + exact_paths = {} + prefix_paths = [] + if current_node: + depth = len(self.resolver_prefix_paths) + for path, kind in self.resolver_prefix_paths[-1]: + if self.check_resolver_prefix(depth, path, kind, + current_node, current_index): + if len(path) > depth: + prefix_paths.append((path, kind)) + else: + exact_paths[kind] = self.yaml_path_resolvers[path, kind] + else: + for path, kind in self.yaml_path_resolvers: + if not path: + exact_paths[kind] = self.yaml_path_resolvers[path, kind] + else: + prefix_paths.append((path, kind)) + self.resolver_exact_paths.append(exact_paths) + self.resolver_prefix_paths.append(prefix_paths) + + def ascend_resolver(self): + if not self.yaml_path_resolvers: + return + self.resolver_exact_paths.pop() + self.resolver_prefix_paths.pop() + + def check_resolver_prefix(self, depth, path, kind, + current_node, current_index): + node_check, index_check = path[depth-1] + if isinstance(node_check, str): + if current_node.tag != node_check: + return + elif node_check is not None: + if not isinstance(current_node, node_check): + return + if index_check is True and current_index is not None: + return + if (index_check is False or index_check is None) \ + and current_index is None: + return + if isinstance(index_check, str): + if not (isinstance(current_index, ScalarNode) + and index_check == current_index.value): + return + elif isinstance(index_check, int) and not isinstance(index_check, bool): + if index_check != current_index: + return + return True + + def resolve(self, kind, value, implicit): + if kind is ScalarNode and implicit[0]: + if value == '': + resolvers = self.yaml_implicit_resolvers.get('', []) + else: + resolvers = self.yaml_implicit_resolvers.get(value[0], []) + wildcard_resolvers = self.yaml_implicit_resolvers.get(None, []) + for tag, regexp in resolvers + wildcard_resolvers: + if regexp.match(value): + return tag + implicit = implicit[1] + if self.yaml_path_resolvers: + exact_paths = self.resolver_exact_paths[-1] + if kind in exact_paths: + return exact_paths[kind] + if None in exact_paths: + return exact_paths[None] + if kind is ScalarNode: + return self.DEFAULT_SCALAR_TAG + elif kind is SequenceNode: + return self.DEFAULT_SEQUENCE_TAG + elif kind is MappingNode: + return self.DEFAULT_MAPPING_TAG + +class Resolver(BaseResolver): + pass + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:bool', + re.compile(r'''^(?:yes|Yes|YES|no|No|NO + |true|True|TRUE|false|False|FALSE + |on|On|ON|off|Off|OFF)$''', re.X), + list('yYnNtTfFoO')) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:float', + re.compile(r'''^(?:[-+]?(?:[0-9][0-9_]*)\.[0-9_]*(?:[eE][-+][0-9]+)? + |\.[0-9][0-9_]*(?:[eE][-+][0-9]+)? + |[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]* + |[-+]?\.(?:inf|Inf|INF) + |\.(?:nan|NaN|NAN))$''', re.X), + list('-+0123456789.')) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:int', + re.compile(r'''^(?:[-+]?0b[0-1_]+ + |[-+]?0[0-7_]+ + |[-+]?(?:0|[1-9][0-9_]*) + |[-+]?0x[0-9a-fA-F_]+ + |[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$''', re.X), + list('-+0123456789')) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:merge', + re.compile(r'^(?:<<)$'), + ['<']) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:null', + re.compile(r'''^(?: ~ + |null|Null|NULL + | )$''', re.X), + ['~', 'n', 'N', '']) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:timestamp', + re.compile(r'''^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] + |[0-9][0-9][0-9][0-9] -[0-9][0-9]? -[0-9][0-9]? + (?:[Tt]|[ \t]+)[0-9][0-9]? + :[0-9][0-9] :[0-9][0-9] (?:\.[0-9]*)? + (?:[ \t]*(?:Z|[-+][0-9][0-9]?(?::[0-9][0-9])?))?)$''', re.X), + list('0123456789')) + +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:value', + re.compile(r'^(?:=)$'), + ['=']) + +# The following resolver is only for documentation purposes. It cannot work +# because plain scalars cannot start with '!', '&', or '*'. +Resolver.add_implicit_resolver( + 'tag:yaml.org,2002:yaml', + re.compile(r'^(?:!|&|\*)$'), + list('!&*')) + diff --git a/lib/yaml/scanner.py b/lib/yaml/scanner.py new file mode 100644 index 0000000..de925b0 --- /dev/null +++ b/lib/yaml/scanner.py @@ -0,0 +1,1435 @@ + +# Scanner produces tokens of the following types: +# STREAM-START +# STREAM-END +# DIRECTIVE(name, value) +# DOCUMENT-START +# DOCUMENT-END +# BLOCK-SEQUENCE-START +# BLOCK-MAPPING-START +# BLOCK-END +# FLOW-SEQUENCE-START +# FLOW-MAPPING-START +# FLOW-SEQUENCE-END +# FLOW-MAPPING-END +# BLOCK-ENTRY +# FLOW-ENTRY +# KEY +# VALUE +# ALIAS(value) +# ANCHOR(value) +# TAG(value) +# SCALAR(value, plain, style) +# +# Read comments in the Scanner code for more details. +# + +__all__ = ['Scanner', 'ScannerError'] + +from .error import MarkedYAMLError +from .tokens import * + +class ScannerError(MarkedYAMLError): + pass + +class SimpleKey: + # See below simple keys treatment. + + def __init__(self, token_number, required, index, line, column, mark): + self.token_number = token_number + self.required = required + self.index = index + self.line = line + self.column = column + self.mark = mark + +class Scanner: + + def __init__(self): + """Initialize the scanner.""" + # It is assumed that Scanner and Reader will have a common descendant. + # Reader do the dirty work of checking for BOM and converting the + # input data to Unicode. It also adds NUL to the end. + # + # Reader supports the following methods + # self.peek(i=0) # peek the next i-th character + # self.prefix(l=1) # peek the next l characters + # self.forward(l=1) # read the next l characters and move the pointer. + + # Had we reached the end of the stream? + self.done = False + + # The number of unclosed '{' and '['. `flow_level == 0` means block + # context. + self.flow_level = 0 + + # List of processed tokens that are not yet emitted. + self.tokens = [] + + # Add the STREAM-START token. + self.fetch_stream_start() + + # Number of tokens that were emitted through the `get_token` method. + self.tokens_taken = 0 + + # The current indentation level. + self.indent = -1 + + # Past indentation levels. + self.indents = [] + + # Variables related to simple keys treatment. + + # A simple key is a key that is not denoted by the '?' indicator. + # Example of simple keys: + # --- + # block simple key: value + # ? not a simple key: + # : { flow simple key: value } + # We emit the KEY token before all keys, so when we find a potential + # simple key, we try to locate the corresponding ':' indicator. + # Simple keys should be limited to a single line and 1024 characters. + + # Can a simple key start at the current position? A simple key may + # start: + # - at the beginning of the line, not counting indentation spaces + # (in block context), + # - after '{', '[', ',' (in the flow context), + # - after '?', ':', '-' (in the block context). + # In the block context, this flag also signifies if a block collection + # may start at the current position. + self.allow_simple_key = True + + # Keep track of possible simple keys. This is a dictionary. The key + # is `flow_level`; there can be no more that one possible simple key + # for each level. The value is a SimpleKey record: + # (token_number, required, index, line, column, mark) + # A simple key may start with ALIAS, ANCHOR, TAG, SCALAR(flow), + # '[', or '{' tokens. + self.possible_simple_keys = {} + + # Public methods. + + def check_token(self, *choices): + # Check if the next token is one of the given types. + while self.need_more_tokens(): + self.fetch_more_tokens() + if self.tokens: + if not choices: + return True + for choice in choices: + if isinstance(self.tokens[0], choice): + return True + return False + + def peek_token(self): + # Return the next token, but do not delete if from the queue. + # Return None if no more tokens. + while self.need_more_tokens(): + self.fetch_more_tokens() + if self.tokens: + return self.tokens[0] + else: + return None + + def get_token(self): + # Return the next token. + while self.need_more_tokens(): + self.fetch_more_tokens() + if self.tokens: + self.tokens_taken += 1 + return self.tokens.pop(0) + + # Private methods. + + def need_more_tokens(self): + if self.done: + return False + if not self.tokens: + return True + # The current token may be a potential simple key, so we + # need to look further. + self.stale_possible_simple_keys() + if self.next_possible_simple_key() == self.tokens_taken: + return True + + def fetch_more_tokens(self): + + # Eat whitespaces and comments until we reach the next token. + self.scan_to_next_token() + + # Remove obsolete possible simple keys. + self.stale_possible_simple_keys() + + # Compare the current indentation and column. It may add some tokens + # and decrease the current indentation level. + self.unwind_indent(self.column) + + # Peek the next character. + ch = self.peek() + + # Is it the end of stream? + if ch == '\0': + return self.fetch_stream_end() + + # Is it a directive? + if ch == '%' and self.check_directive(): + return self.fetch_directive() + + # Is it the document start? + if ch == '-' and self.check_document_start(): + return self.fetch_document_start() + + # Is it the document end? + if ch == '.' and self.check_document_end(): + return self.fetch_document_end() + + # TODO: support for BOM within a stream. + #if ch == '\uFEFF': + # return self.fetch_bom() <-- issue BOMToken + + # Note: the order of the following checks is NOT significant. + + # Is it the flow sequence start indicator? + if ch == '[': + return self.fetch_flow_sequence_start() + + # Is it the flow mapping start indicator? + if ch == '{': + return self.fetch_flow_mapping_start() + + # Is it the flow sequence end indicator? + if ch == ']': + return self.fetch_flow_sequence_end() + + # Is it the flow mapping end indicator? + if ch == '}': + return self.fetch_flow_mapping_end() + + # Is it the flow entry indicator? + if ch == ',': + return self.fetch_flow_entry() + + # Is it the block entry indicator? + if ch == '-' and self.check_block_entry(): + return self.fetch_block_entry() + + # Is it the key indicator? + if ch == '?' and self.check_key(): + return self.fetch_key() + + # Is it the value indicator? + if ch == ':' and self.check_value(): + return self.fetch_value() + + # Is it an alias? + if ch == '*': + return self.fetch_alias() + + # Is it an anchor? + if ch == '&': + return self.fetch_anchor() + + # Is it a tag? + if ch == '!': + return self.fetch_tag() + + # Is it a literal scalar? + if ch == '|' and not self.flow_level: + return self.fetch_literal() + + # Is it a folded scalar? + if ch == '>' and not self.flow_level: + return self.fetch_folded() + + # Is it a single quoted scalar? + if ch == '\'': + return self.fetch_single() + + # Is it a double quoted scalar? + if ch == '\"': + return self.fetch_double() + + # It must be a plain scalar then. + if self.check_plain(): + return self.fetch_plain() + + # No? It's an error. Let's produce a nice error message. + raise ScannerError("while scanning for the next token", None, + "found character %r that cannot start any token" % ch, + self.get_mark()) + + # Simple keys treatment. + + def next_possible_simple_key(self): + # Return the number of the nearest possible simple key. Actually we + # don't need to loop through the whole dictionary. We may replace it + # with the following code: + # if not self.possible_simple_keys: + # return None + # return self.possible_simple_keys[ + # min(self.possible_simple_keys.keys())].token_number + min_token_number = None + for level in self.possible_simple_keys: + key = self.possible_simple_keys[level] + if min_token_number is None or key.token_number < min_token_number: + min_token_number = key.token_number + return min_token_number + + def stale_possible_simple_keys(self): + # Remove entries that are no longer possible simple keys. According to + # the YAML specification, simple keys + # - should be limited to a single line, + # - should be no longer than 1024 characters. + # Disabling this procedure will allow simple keys of any length and + # height (may cause problems if indentation is broken though). + for level in list(self.possible_simple_keys): + key = self.possible_simple_keys[level] + if key.line != self.line \ + or self.index-key.index > 1024: + if key.required: + raise ScannerError("while scanning a simple key", key.mark, + "could not find expected ':'", self.get_mark()) + del self.possible_simple_keys[level] + + def save_possible_simple_key(self): + # The next token may start a simple key. We check if it's possible + # and save its position. This function is called for + # ALIAS, ANCHOR, TAG, SCALAR(flow), '[', and '{'. + + # Check if a simple key is required at the current position. + required = not self.flow_level and self.indent == self.column + + # The next token might be a simple key. Let's save it's number and + # position. + if self.allow_simple_key: + self.remove_possible_simple_key() + token_number = self.tokens_taken+len(self.tokens) + key = SimpleKey(token_number, required, + self.index, self.line, self.column, self.get_mark()) + self.possible_simple_keys[self.flow_level] = key + + def remove_possible_simple_key(self): + # Remove the saved possible key position at the current flow level. + if self.flow_level in self.possible_simple_keys: + key = self.possible_simple_keys[self.flow_level] + + if key.required: + raise ScannerError("while scanning a simple key", key.mark, + "could not find expected ':'", self.get_mark()) + + del self.possible_simple_keys[self.flow_level] + + # Indentation functions. + + def unwind_indent(self, column): + + ## In flow context, tokens should respect indentation. + ## Actually the condition should be `self.indent >= column` according to + ## the spec. But this condition will prohibit intuitively correct + ## constructions such as + ## key : { + ## } + #if self.flow_level and self.indent > column: + # raise ScannerError(None, None, + # "invalid indentation or unclosed '[' or '{'", + # self.get_mark()) + + # In the flow context, indentation is ignored. We make the scanner less + # restrictive then specification requires. + if self.flow_level: + return + + # In block context, we may need to issue the BLOCK-END tokens. + while self.indent > column: + mark = self.get_mark() + self.indent = self.indents.pop() + self.tokens.append(BlockEndToken(mark, mark)) + + def add_indent(self, column): + # Check if we need to increase indentation. + if self.indent < column: + self.indents.append(self.indent) + self.indent = column + return True + return False + + # Fetchers. + + def fetch_stream_start(self): + # We always add STREAM-START as the first token and STREAM-END as the + # last token. + + # Read the token. + mark = self.get_mark() + + # Add STREAM-START. + self.tokens.append(StreamStartToken(mark, mark, + encoding=self.encoding)) + + + def fetch_stream_end(self): + + # Set the current indentation to -1. + self.unwind_indent(-1) + + # Reset simple keys. + self.remove_possible_simple_key() + self.allow_simple_key = False + self.possible_simple_keys = {} + + # Read the token. + mark = self.get_mark() + + # Add STREAM-END. + self.tokens.append(StreamEndToken(mark, mark)) + + # The steam is finished. + self.done = True + + def fetch_directive(self): + + # Set the current indentation to -1. + self.unwind_indent(-1) + + # Reset simple keys. + self.remove_possible_simple_key() + self.allow_simple_key = False + + # Scan and add DIRECTIVE. + self.tokens.append(self.scan_directive()) + + def fetch_document_start(self): + self.fetch_document_indicator(DocumentStartToken) + + def fetch_document_end(self): + self.fetch_document_indicator(DocumentEndToken) + + def fetch_document_indicator(self, TokenClass): + + # Set the current indentation to -1. + self.unwind_indent(-1) + + # Reset simple keys. Note that there could not be a block collection + # after '---'. + self.remove_possible_simple_key() + self.allow_simple_key = False + + # Add DOCUMENT-START or DOCUMENT-END. + start_mark = self.get_mark() + self.forward(3) + end_mark = self.get_mark() + self.tokens.append(TokenClass(start_mark, end_mark)) + + def fetch_flow_sequence_start(self): + self.fetch_flow_collection_start(FlowSequenceStartToken) + + def fetch_flow_mapping_start(self): + self.fetch_flow_collection_start(FlowMappingStartToken) + + def fetch_flow_collection_start(self, TokenClass): + + # '[' and '{' may start a simple key. + self.save_possible_simple_key() + + # Increase the flow level. + self.flow_level += 1 + + # Simple keys are allowed after '[' and '{'. + self.allow_simple_key = True + + # Add FLOW-SEQUENCE-START or FLOW-MAPPING-START. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(TokenClass(start_mark, end_mark)) + + def fetch_flow_sequence_end(self): + self.fetch_flow_collection_end(FlowSequenceEndToken) + + def fetch_flow_mapping_end(self): + self.fetch_flow_collection_end(FlowMappingEndToken) + + def fetch_flow_collection_end(self, TokenClass): + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Decrease the flow level. + self.flow_level -= 1 + + # No simple keys after ']' or '}'. + self.allow_simple_key = False + + # Add FLOW-SEQUENCE-END or FLOW-MAPPING-END. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(TokenClass(start_mark, end_mark)) + + def fetch_flow_entry(self): + + # Simple keys are allowed after ','. + self.allow_simple_key = True + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add FLOW-ENTRY. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(FlowEntryToken(start_mark, end_mark)) + + def fetch_block_entry(self): + + # Block context needs additional checks. + if not self.flow_level: + + # Are we allowed to start a new entry? + if not self.allow_simple_key: + raise ScannerError(None, None, + "sequence entries are not allowed here", + self.get_mark()) + + # We may need to add BLOCK-SEQUENCE-START. + if self.add_indent(self.column): + mark = self.get_mark() + self.tokens.append(BlockSequenceStartToken(mark, mark)) + + # It's an error for the block entry to occur in the flow context, + # but we let the parser detect this. + else: + pass + + # Simple keys are allowed after '-'. + self.allow_simple_key = True + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add BLOCK-ENTRY. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(BlockEntryToken(start_mark, end_mark)) + + def fetch_key(self): + + # Block context needs additional checks. + if not self.flow_level: + + # Are we allowed to start a key (not necessary a simple)? + if not self.allow_simple_key: + raise ScannerError(None, None, + "mapping keys are not allowed here", + self.get_mark()) + + # We may need to add BLOCK-MAPPING-START. + if self.add_indent(self.column): + mark = self.get_mark() + self.tokens.append(BlockMappingStartToken(mark, mark)) + + # Simple keys are allowed after '?' in the block context. + self.allow_simple_key = not self.flow_level + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add KEY. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(KeyToken(start_mark, end_mark)) + + def fetch_value(self): + + # Do we determine a simple key? + if self.flow_level in self.possible_simple_keys: + + # Add KEY. + key = self.possible_simple_keys[self.flow_level] + del self.possible_simple_keys[self.flow_level] + self.tokens.insert(key.token_number-self.tokens_taken, + KeyToken(key.mark, key.mark)) + + # If this key starts a new block mapping, we need to add + # BLOCK-MAPPING-START. + if not self.flow_level: + if self.add_indent(key.column): + self.tokens.insert(key.token_number-self.tokens_taken, + BlockMappingStartToken(key.mark, key.mark)) + + # There cannot be two simple keys one after another. + self.allow_simple_key = False + + # It must be a part of a complex key. + else: + + # Block context needs additional checks. + # (Do we really need them? They will be caught by the parser + # anyway.) + if not self.flow_level: + + # We are allowed to start a complex value if and only if + # we can start a simple key. + if not self.allow_simple_key: + raise ScannerError(None, None, + "mapping values are not allowed here", + self.get_mark()) + + # If this value starts a new block mapping, we need to add + # BLOCK-MAPPING-START. It will be detected as an error later by + # the parser. + if not self.flow_level: + if self.add_indent(self.column): + mark = self.get_mark() + self.tokens.append(BlockMappingStartToken(mark, mark)) + + # Simple keys are allowed after ':' in the block context. + self.allow_simple_key = not self.flow_level + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Add VALUE. + start_mark = self.get_mark() + self.forward() + end_mark = self.get_mark() + self.tokens.append(ValueToken(start_mark, end_mark)) + + def fetch_alias(self): + + # ALIAS could be a simple key. + self.save_possible_simple_key() + + # No simple keys after ALIAS. + self.allow_simple_key = False + + # Scan and add ALIAS. + self.tokens.append(self.scan_anchor(AliasToken)) + + def fetch_anchor(self): + + # ANCHOR could start a simple key. + self.save_possible_simple_key() + + # No simple keys after ANCHOR. + self.allow_simple_key = False + + # Scan and add ANCHOR. + self.tokens.append(self.scan_anchor(AnchorToken)) + + def fetch_tag(self): + + # TAG could start a simple key. + self.save_possible_simple_key() + + # No simple keys after TAG. + self.allow_simple_key = False + + # Scan and add TAG. + self.tokens.append(self.scan_tag()) + + def fetch_literal(self): + self.fetch_block_scalar(style='|') + + def fetch_folded(self): + self.fetch_block_scalar(style='>') + + def fetch_block_scalar(self, style): + + # A simple key may follow a block scalar. + self.allow_simple_key = True + + # Reset possible simple key on the current level. + self.remove_possible_simple_key() + + # Scan and add SCALAR. + self.tokens.append(self.scan_block_scalar(style)) + + def fetch_single(self): + self.fetch_flow_scalar(style='\'') + + def fetch_double(self): + self.fetch_flow_scalar(style='"') + + def fetch_flow_scalar(self, style): + + # A flow scalar could be a simple key. + self.save_possible_simple_key() + + # No simple keys after flow scalars. + self.allow_simple_key = False + + # Scan and add SCALAR. + self.tokens.append(self.scan_flow_scalar(style)) + + def fetch_plain(self): + + # A plain scalar could be a simple key. + self.save_possible_simple_key() + + # No simple keys after plain scalars. But note that `scan_plain` will + # change this flag if the scan is finished at the beginning of the + # line. + self.allow_simple_key = False + + # Scan and add SCALAR. May change `allow_simple_key`. + self.tokens.append(self.scan_plain()) + + # Checkers. + + def check_directive(self): + + # DIRECTIVE: ^ '%' ... + # The '%' indicator is already checked. + if self.column == 0: + return True + + def check_document_start(self): + + # DOCUMENT-START: ^ '---' (' '|'\n') + if self.column == 0: + if self.prefix(3) == '---' \ + and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029': + return True + + def check_document_end(self): + + # DOCUMENT-END: ^ '...' (' '|'\n') + if self.column == 0: + if self.prefix(3) == '...' \ + and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029': + return True + + def check_block_entry(self): + + # BLOCK-ENTRY: '-' (' '|'\n') + return self.peek(1) in '\0 \t\r\n\x85\u2028\u2029' + + def check_key(self): + + # KEY(flow context): '?' + if self.flow_level: + return True + + # KEY(block context): '?' (' '|'\n') + else: + return self.peek(1) in '\0 \t\r\n\x85\u2028\u2029' + + def check_value(self): + + # VALUE(flow context): ':' + if self.flow_level: + return True + + # VALUE(block context): ':' (' '|'\n') + else: + return self.peek(1) in '\0 \t\r\n\x85\u2028\u2029' + + def check_plain(self): + + # A plain scalar may start with any non-space character except: + # '-', '?', ':', ',', '[', ']', '{', '}', + # '#', '&', '*', '!', '|', '>', '\'', '\"', + # '%', '@', '`'. + # + # It may also start with + # '-', '?', ':' + # if it is followed by a non-space character. + # + # Note that we limit the last rule to the block context (except the + # '-' character) because we want the flow context to be space + # independent. + ch = self.peek() + return ch not in '\0 \t\r\n\x85\u2028\u2029-?:,[]{}#&*!|>\'\"%@`' \ + or (self.peek(1) not in '\0 \t\r\n\x85\u2028\u2029' + and (ch == '-' or (not self.flow_level and ch in '?:'))) + + # Scanners. + + def scan_to_next_token(self): + # We ignore spaces, line breaks and comments. + # If we find a line break in the block context, we set the flag + # `allow_simple_key` on. + # The byte order mark is stripped if it's the first character in the + # stream. We do not yet support BOM inside the stream as the + # specification requires. Any such mark will be considered as a part + # of the document. + # + # TODO: We need to make tab handling rules more sane. A good rule is + # Tabs cannot precede tokens + # BLOCK-SEQUENCE-START, BLOCK-MAPPING-START, BLOCK-END, + # KEY(block), VALUE(block), BLOCK-ENTRY + # So the checking code is + # if : + # self.allow_simple_keys = False + # We also need to add the check for `allow_simple_keys == True` to + # `unwind_indent` before issuing BLOCK-END. + # Scanners for block, flow, and plain scalars need to be modified. + + if self.index == 0 and self.peek() == '\uFEFF': + self.forward() + found = False + while not found: + while self.peek() == ' ': + self.forward() + if self.peek() == '#': + while self.peek() not in '\0\r\n\x85\u2028\u2029': + self.forward() + if self.scan_line_break(): + if not self.flow_level: + self.allow_simple_key = True + else: + found = True + + def scan_directive(self): + # See the specification for details. + start_mark = self.get_mark() + self.forward() + name = self.scan_directive_name(start_mark) + value = None + if name == 'YAML': + value = self.scan_yaml_directive_value(start_mark) + end_mark = self.get_mark() + elif name == 'TAG': + value = self.scan_tag_directive_value(start_mark) + end_mark = self.get_mark() + else: + end_mark = self.get_mark() + while self.peek() not in '\0\r\n\x85\u2028\u2029': + self.forward() + self.scan_directive_ignored_line(start_mark) + return DirectiveToken(name, value, start_mark, end_mark) + + def scan_directive_name(self, start_mark): + # See the specification for details. + length = 0 + ch = self.peek(length) + while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-_': + length += 1 + ch = self.peek(length) + if not length: + raise ScannerError("while scanning a directive", start_mark, + "expected alphabetic or numeric character, but found %r" + % ch, self.get_mark()) + value = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch not in '\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected alphabetic or numeric character, but found %r" + % ch, self.get_mark()) + return value + + def scan_yaml_directive_value(self, start_mark): + # See the specification for details. + while self.peek() == ' ': + self.forward() + major = self.scan_yaml_directive_number(start_mark) + if self.peek() != '.': + raise ScannerError("while scanning a directive", start_mark, + "expected a digit or '.', but found %r" % self.peek(), + self.get_mark()) + self.forward() + minor = self.scan_yaml_directive_number(start_mark) + if self.peek() not in '\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected a digit or ' ', but found %r" % self.peek(), + self.get_mark()) + return (major, minor) + + def scan_yaml_directive_number(self, start_mark): + # See the specification for details. + ch = self.peek() + if not ('0' <= ch <= '9'): + raise ScannerError("while scanning a directive", start_mark, + "expected a digit, but found %r" % ch, self.get_mark()) + length = 0 + while '0' <= self.peek(length) <= '9': + length += 1 + value = int(self.prefix(length)) + self.forward(length) + return value + + def scan_tag_directive_value(self, start_mark): + # See the specification for details. + while self.peek() == ' ': + self.forward() + handle = self.scan_tag_directive_handle(start_mark) + while self.peek() == ' ': + self.forward() + prefix = self.scan_tag_directive_prefix(start_mark) + return (handle, prefix) + + def scan_tag_directive_handle(self, start_mark): + # See the specification for details. + value = self.scan_tag_handle('directive', start_mark) + ch = self.peek() + if ch != ' ': + raise ScannerError("while scanning a directive", start_mark, + "expected ' ', but found %r" % ch, self.get_mark()) + return value + + def scan_tag_directive_prefix(self, start_mark): + # See the specification for details. + value = self.scan_tag_uri('directive', start_mark) + ch = self.peek() + if ch not in '\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected ' ', but found %r" % ch, self.get_mark()) + return value + + def scan_directive_ignored_line(self, start_mark): + # See the specification for details. + while self.peek() == ' ': + self.forward() + if self.peek() == '#': + while self.peek() not in '\0\r\n\x85\u2028\u2029': + self.forward() + ch = self.peek() + if ch not in '\0\r\n\x85\u2028\u2029': + raise ScannerError("while scanning a directive", start_mark, + "expected a comment or a line break, but found %r" + % ch, self.get_mark()) + self.scan_line_break() + + def scan_anchor(self, TokenClass): + # The specification does not restrict characters for anchors and + # aliases. This may lead to problems, for instance, the document: + # [ *alias, value ] + # can be interpreted in two ways, as + # [ "value" ] + # and + # [ *alias , "value" ] + # Therefore we restrict aliases to numbers and ASCII letters. + start_mark = self.get_mark() + indicator = self.peek() + if indicator == '*': + name = 'alias' + else: + name = 'anchor' + self.forward() + length = 0 + ch = self.peek(length) + while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-_': + length += 1 + ch = self.peek(length) + if not length: + raise ScannerError("while scanning an %s" % name, start_mark, + "expected alphabetic or numeric character, but found %r" + % ch, self.get_mark()) + value = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch not in '\0 \t\r\n\x85\u2028\u2029?:,]}%@`': + raise ScannerError("while scanning an %s" % name, start_mark, + "expected alphabetic or numeric character, but found %r" + % ch, self.get_mark()) + end_mark = self.get_mark() + return TokenClass(value, start_mark, end_mark) + + def scan_tag(self): + # See the specification for details. + start_mark = self.get_mark() + ch = self.peek(1) + if ch == '<': + handle = None + self.forward(2) + suffix = self.scan_tag_uri('tag', start_mark) + if self.peek() != '>': + raise ScannerError("while parsing a tag", start_mark, + "expected '>', but found %r" % self.peek(), + self.get_mark()) + self.forward() + elif ch in '\0 \t\r\n\x85\u2028\u2029': + handle = None + suffix = '!' + self.forward() + else: + length = 1 + use_handle = False + while ch not in '\0 \r\n\x85\u2028\u2029': + if ch == '!': + use_handle = True + break + length += 1 + ch = self.peek(length) + handle = '!' + if use_handle: + handle = self.scan_tag_handle('tag', start_mark) + else: + handle = '!' + self.forward() + suffix = self.scan_tag_uri('tag', start_mark) + ch = self.peek() + if ch not in '\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a tag", start_mark, + "expected ' ', but found %r" % ch, self.get_mark()) + value = (handle, suffix) + end_mark = self.get_mark() + return TagToken(value, start_mark, end_mark) + + def scan_block_scalar(self, style): + # See the specification for details. + + if style == '>': + folded = True + else: + folded = False + + chunks = [] + start_mark = self.get_mark() + + # Scan the header. + self.forward() + chomping, increment = self.scan_block_scalar_indicators(start_mark) + self.scan_block_scalar_ignored_line(start_mark) + + # Determine the indentation level and go to the first non-empty line. + min_indent = self.indent+1 + if min_indent < 1: + min_indent = 1 + if increment is None: + breaks, max_indent, end_mark = self.scan_block_scalar_indentation() + indent = max(min_indent, max_indent) + else: + indent = min_indent+increment-1 + breaks, end_mark = self.scan_block_scalar_breaks(indent) + line_break = '' + + # Scan the inner part of the block scalar. + while self.column == indent and self.peek() != '\0': + chunks.extend(breaks) + leading_non_space = self.peek() not in ' \t' + length = 0 + while self.peek(length) not in '\0\r\n\x85\u2028\u2029': + length += 1 + chunks.append(self.prefix(length)) + self.forward(length) + line_break = self.scan_line_break() + breaks, end_mark = self.scan_block_scalar_breaks(indent) + if self.column == indent and self.peek() != '\0': + + # Unfortunately, folding rules are ambiguous. + # + # This is the folding according to the specification: + + if folded and line_break == '\n' \ + and leading_non_space and self.peek() not in ' \t': + if not breaks: + chunks.append(' ') + else: + chunks.append(line_break) + + # This is Clark Evans's interpretation (also in the spec + # examples): + # + #if folded and line_break == '\n': + # if not breaks: + # if self.peek() not in ' \t': + # chunks.append(' ') + # else: + # chunks.append(line_break) + #else: + # chunks.append(line_break) + else: + break + + # Chomp the tail. + if chomping is not False: + chunks.append(line_break) + if chomping is True: + chunks.extend(breaks) + + # We are done. + return ScalarToken(''.join(chunks), False, start_mark, end_mark, + style) + + def scan_block_scalar_indicators(self, start_mark): + # See the specification for details. + chomping = None + increment = None + ch = self.peek() + if ch in '+-': + if ch == '+': + chomping = True + else: + chomping = False + self.forward() + ch = self.peek() + if ch in '0123456789': + increment = int(ch) + if increment == 0: + raise ScannerError("while scanning a block scalar", start_mark, + "expected indentation indicator in the range 1-9, but found 0", + self.get_mark()) + self.forward() + elif ch in '0123456789': + increment = int(ch) + if increment == 0: + raise ScannerError("while scanning a block scalar", start_mark, + "expected indentation indicator in the range 1-9, but found 0", + self.get_mark()) + self.forward() + ch = self.peek() + if ch in '+-': + if ch == '+': + chomping = True + else: + chomping = False + self.forward() + ch = self.peek() + if ch not in '\0 \r\n\x85\u2028\u2029': + raise ScannerError("while scanning a block scalar", start_mark, + "expected chomping or indentation indicators, but found %r" + % ch, self.get_mark()) + return chomping, increment + + def scan_block_scalar_ignored_line(self, start_mark): + # See the specification for details. + while self.peek() == ' ': + self.forward() + if self.peek() == '#': + while self.peek() not in '\0\r\n\x85\u2028\u2029': + self.forward() + ch = self.peek() + if ch not in '\0\r\n\x85\u2028\u2029': + raise ScannerError("while scanning a block scalar", start_mark, + "expected a comment or a line break, but found %r" % ch, + self.get_mark()) + self.scan_line_break() + + def scan_block_scalar_indentation(self): + # See the specification for details. + chunks = [] + max_indent = 0 + end_mark = self.get_mark() + while self.peek() in ' \r\n\x85\u2028\u2029': + if self.peek() != ' ': + chunks.append(self.scan_line_break()) + end_mark = self.get_mark() + else: + self.forward() + if self.column > max_indent: + max_indent = self.column + return chunks, max_indent, end_mark + + def scan_block_scalar_breaks(self, indent): + # See the specification for details. + chunks = [] + end_mark = self.get_mark() + while self.column < indent and self.peek() == ' ': + self.forward() + while self.peek() in '\r\n\x85\u2028\u2029': + chunks.append(self.scan_line_break()) + end_mark = self.get_mark() + while self.column < indent and self.peek() == ' ': + self.forward() + return chunks, end_mark + + def scan_flow_scalar(self, style): + # See the specification for details. + # Note that we loose indentation rules for quoted scalars. Quoted + # scalars don't need to adhere indentation because " and ' clearly + # mark the beginning and the end of them. Therefore we are less + # restrictive then the specification requires. We only need to check + # that document separators are not included in scalars. + if style == '"': + double = True + else: + double = False + chunks = [] + start_mark = self.get_mark() + quote = self.peek() + self.forward() + chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark)) + while self.peek() != quote: + chunks.extend(self.scan_flow_scalar_spaces(double, start_mark)) + chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark)) + self.forward() + end_mark = self.get_mark() + return ScalarToken(''.join(chunks), False, start_mark, end_mark, + style) + + ESCAPE_REPLACEMENTS = { + '0': '\0', + 'a': '\x07', + 'b': '\x08', + 't': '\x09', + '\t': '\x09', + 'n': '\x0A', + 'v': '\x0B', + 'f': '\x0C', + 'r': '\x0D', + 'e': '\x1B', + ' ': '\x20', + '\"': '\"', + '\\': '\\', + '/': '/', + 'N': '\x85', + '_': '\xA0', + 'L': '\u2028', + 'P': '\u2029', + } + + ESCAPE_CODES = { + 'x': 2, + 'u': 4, + 'U': 8, + } + + def scan_flow_scalar_non_spaces(self, double, start_mark): + # See the specification for details. + chunks = [] + while True: + length = 0 + while self.peek(length) not in '\'\"\\\0 \t\r\n\x85\u2028\u2029': + length += 1 + if length: + chunks.append(self.prefix(length)) + self.forward(length) + ch = self.peek() + if not double and ch == '\'' and self.peek(1) == '\'': + chunks.append('\'') + self.forward(2) + elif (double and ch == '\'') or (not double and ch in '\"\\'): + chunks.append(ch) + self.forward() + elif double and ch == '\\': + self.forward() + ch = self.peek() + if ch in self.ESCAPE_REPLACEMENTS: + chunks.append(self.ESCAPE_REPLACEMENTS[ch]) + self.forward() + elif ch in self.ESCAPE_CODES: + length = self.ESCAPE_CODES[ch] + self.forward() + for k in range(length): + if self.peek(k) not in '0123456789ABCDEFabcdef': + raise ScannerError("while scanning a double-quoted scalar", start_mark, + "expected escape sequence of %d hexadecimal numbers, but found %r" % + (length, self.peek(k)), self.get_mark()) + code = int(self.prefix(length), 16) + chunks.append(chr(code)) + self.forward(length) + elif ch in '\r\n\x85\u2028\u2029': + self.scan_line_break() + chunks.extend(self.scan_flow_scalar_breaks(double, start_mark)) + else: + raise ScannerError("while scanning a double-quoted scalar", start_mark, + "found unknown escape character %r" % ch, self.get_mark()) + else: + return chunks + + def scan_flow_scalar_spaces(self, double, start_mark): + # See the specification for details. + chunks = [] + length = 0 + while self.peek(length) in ' \t': + length += 1 + whitespaces = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch == '\0': + raise ScannerError("while scanning a quoted scalar", start_mark, + "found unexpected end of stream", self.get_mark()) + elif ch in '\r\n\x85\u2028\u2029': + line_break = self.scan_line_break() + breaks = self.scan_flow_scalar_breaks(double, start_mark) + if line_break != '\n': + chunks.append(line_break) + elif not breaks: + chunks.append(' ') + chunks.extend(breaks) + else: + chunks.append(whitespaces) + return chunks + + def scan_flow_scalar_breaks(self, double, start_mark): + # See the specification for details. + chunks = [] + while True: + # Instead of checking indentation, we check for document + # separators. + prefix = self.prefix(3) + if (prefix == '---' or prefix == '...') \ + and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029': + raise ScannerError("while scanning a quoted scalar", start_mark, + "found unexpected document separator", self.get_mark()) + while self.peek() in ' \t': + self.forward() + if self.peek() in '\r\n\x85\u2028\u2029': + chunks.append(self.scan_line_break()) + else: + return chunks + + def scan_plain(self): + # See the specification for details. + # We add an additional restriction for the flow context: + # plain scalars in the flow context cannot contain ',' or '?'. + # We also keep track of the `allow_simple_key` flag here. + # Indentation rules are loosed for the flow context. + chunks = [] + start_mark = self.get_mark() + end_mark = start_mark + indent = self.indent+1 + # We allow zero indentation for scalars, but then we need to check for + # document separators at the beginning of the line. + #if indent == 0: + # indent = 1 + spaces = [] + while True: + length = 0 + if self.peek() == '#': + break + while True: + ch = self.peek(length) + if ch in '\0 \t\r\n\x85\u2028\u2029' \ + or (ch == ':' and + self.peek(length+1) in '\0 \t\r\n\x85\u2028\u2029' + + (u',[]{}' if self.flow_level else u''))\ + or (self.flow_level and ch in ',?[]{}'): + break + length += 1 + if length == 0: + break + self.allow_simple_key = False + chunks.extend(spaces) + chunks.append(self.prefix(length)) + self.forward(length) + end_mark = self.get_mark() + spaces = self.scan_plain_spaces(indent, start_mark) + if not spaces or self.peek() == '#' \ + or (not self.flow_level and self.column < indent): + break + return ScalarToken(''.join(chunks), True, start_mark, end_mark) + + def scan_plain_spaces(self, indent, start_mark): + # See the specification for details. + # The specification is really confusing about tabs in plain scalars. + # We just forbid them completely. Do not use tabs in YAML! + chunks = [] + length = 0 + while self.peek(length) in ' ': + length += 1 + whitespaces = self.prefix(length) + self.forward(length) + ch = self.peek() + if ch in '\r\n\x85\u2028\u2029': + line_break = self.scan_line_break() + self.allow_simple_key = True + prefix = self.prefix(3) + if (prefix == '---' or prefix == '...') \ + and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029': + return + breaks = [] + while self.peek() in ' \r\n\x85\u2028\u2029': + if self.peek() == ' ': + self.forward() + else: + breaks.append(self.scan_line_break()) + prefix = self.prefix(3) + if (prefix == '---' or prefix == '...') \ + and self.peek(3) in '\0 \t\r\n\x85\u2028\u2029': + return + if line_break != '\n': + chunks.append(line_break) + elif not breaks: + chunks.append(' ') + chunks.extend(breaks) + elif whitespaces: + chunks.append(whitespaces) + return chunks + + def scan_tag_handle(self, name, start_mark): + # See the specification for details. + # For some strange reasons, the specification does not allow '_' in + # tag handles. I have allowed it anyway. + ch = self.peek() + if ch != '!': + raise ScannerError("while scanning a %s" % name, start_mark, + "expected '!', but found %r" % ch, self.get_mark()) + length = 1 + ch = self.peek(length) + if ch != ' ': + while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-_': + length += 1 + ch = self.peek(length) + if ch != '!': + self.forward(length) + raise ScannerError("while scanning a %s" % name, start_mark, + "expected '!', but found %r" % ch, self.get_mark()) + length += 1 + value = self.prefix(length) + self.forward(length) + return value + + def scan_tag_uri(self, name, start_mark): + # See the specification for details. + # Note: we do not check if URI is well-formed. + chunks = [] + length = 0 + ch = self.peek(length) + while '0' <= ch <= '9' or 'A' <= ch <= 'Z' or 'a' <= ch <= 'z' \ + or ch in '-;/?:@&=+$,_.!~*\'()[]%': + if ch == '%': + chunks.append(self.prefix(length)) + self.forward(length) + length = 0 + chunks.append(self.scan_uri_escapes(name, start_mark)) + else: + length += 1 + ch = self.peek(length) + if length: + chunks.append(self.prefix(length)) + self.forward(length) + length = 0 + if not chunks: + raise ScannerError("while parsing a %s" % name, start_mark, + "expected URI, but found %r" % ch, self.get_mark()) + return ''.join(chunks) + + def scan_uri_escapes(self, name, start_mark): + # See the specification for details. + codes = [] + mark = self.get_mark() + while self.peek() == '%': + self.forward() + for k in range(2): + if self.peek(k) not in '0123456789ABCDEFabcdef': + raise ScannerError("while scanning a %s" % name, start_mark, + "expected URI escape sequence of 2 hexadecimal numbers, but found %r" + % self.peek(k), self.get_mark()) + codes.append(int(self.prefix(2), 16)) + self.forward(2) + try: + value = bytes(codes).decode('utf-8') + except UnicodeDecodeError as exc: + raise ScannerError("while scanning a %s" % name, start_mark, str(exc), mark) + return value + + def scan_line_break(self): + # Transforms: + # '\r\n' : '\n' + # '\r' : '\n' + # '\n' : '\n' + # '\x85' : '\n' + # '\u2028' : '\u2028' + # '\u2029 : '\u2029' + # default : '' + ch = self.peek() + if ch in '\r\n\x85': + if self.prefix(2) == '\r\n': + self.forward(2) + else: + self.forward() + return '\n' + elif ch in '\u2028\u2029': + self.forward() + return ch + return '' diff --git a/lib/yaml/serializer.py b/lib/yaml/serializer.py new file mode 100644 index 0000000..fe911e6 --- /dev/null +++ b/lib/yaml/serializer.py @@ -0,0 +1,111 @@ + +__all__ = ['Serializer', 'SerializerError'] + +from .error import YAMLError +from .events import * +from .nodes import * + +class SerializerError(YAMLError): + pass + +class Serializer: + + ANCHOR_TEMPLATE = 'id%03d' + + def __init__(self, encoding=None, + explicit_start=None, explicit_end=None, version=None, tags=None): + self.use_encoding = encoding + self.use_explicit_start = explicit_start + self.use_explicit_end = explicit_end + self.use_version = version + self.use_tags = tags + self.serialized_nodes = {} + self.anchors = {} + self.last_anchor_id = 0 + self.closed = None + + def open(self): + if self.closed is None: + self.emit(StreamStartEvent(encoding=self.use_encoding)) + self.closed = False + elif self.closed: + raise SerializerError("serializer is closed") + else: + raise SerializerError("serializer is already opened") + + def close(self): + if self.closed is None: + raise SerializerError("serializer is not opened") + elif not self.closed: + self.emit(StreamEndEvent()) + self.closed = True + + #def __del__(self): + # self.close() + + def serialize(self, node): + if self.closed is None: + raise SerializerError("serializer is not opened") + elif self.closed: + raise SerializerError("serializer is closed") + self.emit(DocumentStartEvent(explicit=self.use_explicit_start, + version=self.use_version, tags=self.use_tags)) + self.anchor_node(node) + self.serialize_node(node, None, None) + self.emit(DocumentEndEvent(explicit=self.use_explicit_end)) + self.serialized_nodes = {} + self.anchors = {} + self.last_anchor_id = 0 + + def anchor_node(self, node): + if node in self.anchors: + if self.anchors[node] is None: + self.anchors[node] = self.generate_anchor(node) + else: + self.anchors[node] = None + if isinstance(node, SequenceNode): + for item in node.value: + self.anchor_node(item) + elif isinstance(node, MappingNode): + for key, value in node.value: + self.anchor_node(key) + self.anchor_node(value) + + def generate_anchor(self, node): + self.last_anchor_id += 1 + return self.ANCHOR_TEMPLATE % self.last_anchor_id + + def serialize_node(self, node, parent, index): + alias = self.anchors[node] + if node in self.serialized_nodes: + self.emit(AliasEvent(alias)) + else: + self.serialized_nodes[node] = True + self.descend_resolver(parent, index) + if isinstance(node, ScalarNode): + detected_tag = self.resolve(ScalarNode, node.value, (True, False)) + default_tag = self.resolve(ScalarNode, node.value, (False, True)) + implicit = (node.tag == detected_tag), (node.tag == default_tag) + self.emit(ScalarEvent(alias, node.tag, implicit, node.value, + style=node.style)) + elif isinstance(node, SequenceNode): + implicit = (node.tag + == self.resolve(SequenceNode, node.value, True)) + self.emit(SequenceStartEvent(alias, node.tag, implicit, + flow_style=node.flow_style)) + index = 0 + for item in node.value: + self.serialize_node(item, node, index) + index += 1 + self.emit(SequenceEndEvent()) + elif isinstance(node, MappingNode): + implicit = (node.tag + == self.resolve(MappingNode, node.value, True)) + self.emit(MappingStartEvent(alias, node.tag, implicit, + flow_style=node.flow_style)) + for key, value in node.value: + self.serialize_node(key, node, None) + self.serialize_node(value, node, key) + self.emit(MappingEndEvent()) + self.ascend_resolver() + diff --git a/lib/yaml/tokens.py b/lib/yaml/tokens.py new file mode 100644 index 0000000..4d0b48a --- /dev/null +++ b/lib/yaml/tokens.py @@ -0,0 +1,104 @@ + +class Token(object): + def __init__(self, start_mark, end_mark): + self.start_mark = start_mark + self.end_mark = end_mark + def __repr__(self): + attributes = [key for key in self.__dict__ + if not key.endswith('_mark')] + attributes.sort() + arguments = ', '.join(['%s=%r' % (key, getattr(self, key)) + for key in attributes]) + return '%s(%s)' % (self.__class__.__name__, arguments) + +#class BOMToken(Token): +# id = '' + +class DirectiveToken(Token): + id = '' + def __init__(self, name, value, start_mark, end_mark): + self.name = name + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class DocumentStartToken(Token): + id = '' + +class DocumentEndToken(Token): + id = '' + +class StreamStartToken(Token): + id = '' + def __init__(self, start_mark=None, end_mark=None, + encoding=None): + self.start_mark = start_mark + self.end_mark = end_mark + self.encoding = encoding + +class StreamEndToken(Token): + id = '' + +class BlockSequenceStartToken(Token): + id = '' + +class BlockMappingStartToken(Token): + id = '' + +class BlockEndToken(Token): + id = '' + +class FlowSequenceStartToken(Token): + id = '[' + +class FlowMappingStartToken(Token): + id = '{' + +class FlowSequenceEndToken(Token): + id = ']' + +class FlowMappingEndToken(Token): + id = '}' + +class KeyToken(Token): + id = '?' + +class ValueToken(Token): + id = ':' + +class BlockEntryToken(Token): + id = '-' + +class FlowEntryToken(Token): + id = ',' + +class AliasToken(Token): + id = '' + def __init__(self, value, start_mark, end_mark): + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class AnchorToken(Token): + id = '' + def __init__(self, value, start_mark, end_mark): + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class TagToken(Token): + id = '' + def __init__(self, value, start_mark, end_mark): + self.value = value + self.start_mark = start_mark + self.end_mark = end_mark + +class ScalarToken(Token): + id = '' + def __init__(self, value, plain, start_mark, end_mark, style=None): + self.value = value + self.plain = plain + self.start_mark = start_mark + self.end_mark = end_mark + self.style = style +

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�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�$a(LIUxG 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