Saravanan666/pypi-org huggingface dataset:
Package: ctodd-python-lib-datetime
Christopher H. Todd's Python Library For Interacting With Datetime Objects in PythonThe ctodd-python-lib-datetime project is responsible for interacting with date, time, timezones, and other time related shenanigans in the Python languages.Table of ContentsDependenciesLibrariesExample ScriptsNotesTODODependenciesPython PackagesLibrariesdate_manipulation_helpers.pyLibrary for Manipulating Datetime and Date objects in PythonFunctions:def add_or_subtract_days_from_date(base_date, number_of_days, op='addition'):
    """
    Purpose:
        Adds or subtracts a number of days to a given date
        Useful for data sources that use different date structures
        Default operator is addition
    Args:
        base_date (str, datetime obj): Date to mutate
        number_of_days (int): Number of days to add or subtract
        op (str): operator to overload. 'addition' or 'subtraction'
    Returns:
        new_date (Date): Updated date based on function
    """Example ScriptsExample executable Python scripts/modules for testing and interacting with the library. These show example use-cases for the libraries and can be used as templates for developing with the libraries or to use as one-off development efforts.N/ANotesRelies on f-string notation, which is limited to Python3.6.  A refactor to remove these could allow for development with Python3.0.x through 3.5.xTODOUnittest framework in place, but lacking tests
Package: ctodd-python-lib-execution
Christopher H. Todd's Python Library For Wrapping Callable ExecutionThe ctodd-python-lib-execution project is responsible for warpping callables in Python to wrap in function logging, execution time, and other quality of life improvements. Useful for wrapping functions with start and stop timers.Table of ContentsDependenciesLibrariesExample ScriptsNotesTODODependenciesPython Packageswrapt>=1.11.1Librariesfunction_executors.pyLibrary for Logging the Execution Details of any callable or the main() function of a script.Functions:def main_executor(wrapped, instance, args, kwargs):
    """
    Purpose:
        Decorator for running the main() function. Decorator will
        log the start and completion of the script, time the
        execution and performance of the script, and handle
        and exceptions (log the exception to the log file and raise)
    Args:
        wrapped (main function):
        instance: pass in self when wrapping class method.
            default is None when wrapping function.
        args (Tuple): List of arguments
        kwargs (Dict): Dictionary of named arguments
    """Example ScriptsExample executable Python scripts/modules for testing and interacting with the library. These show example use-cases for the libraries and can be used as templates for developing with the libraries or to use as one-off development efforts.N/ANotesRelies on f-string notation, which is limited to Python3.6.  A refactor to remove these could allow for development with Python3.0.x through 3.5.xTODOUnittest framework in place, but lacking tests
Package: ctodd-python-lib-general
Christopher H. Todd's Python Library For General TasksThe ctodd-python-lib-general project is responsible for general tasks that have not been put in specific libraries. Will basically be a dumping ground for one-off tasks that are repeatable but would not call for a specific lib that can be expanded.Table of ContentsDependenciesLibrariesExample ScriptsNotesTODODependenciesPython Packagesrequests>=2.21.0Librariesdownloader.pyLib that allows downloading a File from the given url and saving to the given locationFunctions:def download_file(url, file_location=None, overwrite=False):
    """
    Purpose:
        Download file from specified URL and store in a specfied location.
        If no location is provided, the file is downloaded in the current
        directory. If overwrite is false, the file is not downloaded.
    Args:
        url (string): Full URL path to download file from.
        file_location (string): Full path to where file will be stored.
        overwrite (Boolean): Whether or not to overwrite file if it already
            exists
    Return
        file_location (string): Full path to where file was be stored.
    """Example ScriptsExample executable Python scripts/modules for testing and interacting with the library. These show example use-cases for the libraries and can be used as templates for developing with the libraries or to use as one-off development efforts.N/ANotesRelies on f-string notation, which is limited to Python3.6.  A refactor to remove these could allow for development with Python3.0.x through 3.5.xTODOUnittest framework in place, but lacking tests
Package: ctodd-python-lib-json
Christopher H. Todd's Python Library For Interacting With JSON Objects and FilesThe ctodd-python-lib-json project is responsible for writing and reading JSON files and objects. will handle encoding Python objects into JSON.Table of ContentsDependenciesLibrariesExample ScriptsNotesTODODependenciesPython Packagessimplejson>=3.16.0Librariesjson_reading_helpers.pyThis library is used to aid in the task of reading .json filesFunctions:def read_json_file_into_memory(json_file):
    """
    Purpose:
        Read properly formatted JSON file into memory.
    Args:
        json_file (String): Filename for JSON file to load (including path)
    Returns:
        json_object (Dictonary): Dictonary representation JSON Object
    Examples:
        >>> json_file = 'some/path/to/file.json'
        >>> json_object = read_json_file_into_memory(json_file)
        >>> print(json_object)
        >>> {
        >>>     'key': 'value'
        >>> }
    """json_writing_helpers.pyThis library is used to aid in the task of reading .json filesFunctions:def write_json_into_file(json_object, json_file):
    """
    Purpose:
        Load Dictionary into JSON File
    Args:
        json_object (Dictionary): Dictionary to be stored in .json format
        json_file (String): Filename for JSON file to store (including path)
    Returns:
        N/A
    Examples:
        >>> json_file = 'some/path/to/file.json'
        >>> json_object = {
        >>>     'key': 'value'
        >>> }
        >>> write_json_into_file(json_file, json_object)
    """Example ScriptsExample executable Python scripts/modules for testing and interacting with the library. These show example use-cases for the libraries and can be used as templates for developing with the libraries or to use as one-off development efforts.N/ANotesRelies on f-string notation, which is limited to Python3.6.  A refactor to remove these could allow for development with Python3.0.x through 3.5.xTODOUnittest framework in place, but lacking tests
Package: ctof
ctofA simple library for temperature unit conversionPyPI Libraryctof is a library for inter-conversion of Celsius, Fahrenheit
and Kelvin values. ctof works with ints and floats, as well as lists,
tuples and sets, allowing for multiple values to be
converted at once.Installationpip install ctofImport with:import ctofFunctionsThere are only a couple of functions in ctof 0.2.0:ctof.convert(values, _from, _to)This function is the entire ctof library's core functionality.valuescan be an int, float or a list/tuple/set of ints/floats._fromand_toindicate the temperature to convert from and the
temperature to convert to, respectively. They can be "C", "F" or "K".ctof.version()Prints out the current version and release date.Testspytest tests/test-ctof.pyExamplesConvert an integerimportctofprint(ctof.convert(32,"F","C"))# Value is in Fahrenheit# Output: 0.0print(ctof.convert(0,"C","F"))# Value is in Celsius# Output: 32.0Convert a floatprint(ctof.convert(111.11,"F","C"))# Output: 43.95Convert from a variablevar1=86var2=38print(ctof.convert(var1,"F","C"))# Output: 30.0print(ctof.convert(var2,"C","F"))# Output: 100.4Convert from list, tuple and setmylist=[37,38,39]mytuple=(86,87,88)myset={273.15,373.15}print(ctof.convert(mytuple,"F","C"))# Output: (30.0, 30.555555555555557, 31.11111111111111)print(ctof.convert(mylist,"C","F"))# Output: [98.6, 100.4, 102.2]print(ctof.convert(myset,"K","C"))# Output: {0.0, 100.0}Formatted (rounded) outputprint(round(ctof.convert(86.9125,"F","C"),3))# Round methodprint("{:.3f}".format(ctof.cel(86.9125)))# Format methodprint(ctof.cel(86.9125))# Raw output# Both methods return 30.507# (30.506944444444443 without formatting)
Package: ctools
CTools is a collection of useful data structures and functions written in C for Python.Author: ko-hanDocuments:https://python-ctools.readthedocs.ioInstall:Install and update usingpip:pip install-UctoolsIt provides:Jump consistent hash. Find descriptionhere.fnv1a, fnv1, djb2, andmurmurstring hash method.ALFU(least frequently used) cache mapping class.A TTL cache mapping class that all key expire after specific seconds.A channel class support sending and receiving objects.A SortedMap class based onred-black tree.How To Test:Simple, typemake testand take a sip of coffee.
Also can usemake benchmarkto run the benchmark test.More:What’s important is free.
Package: ctorrent
CURSES TORRENT BROWSERusage: ctorrent [-h] [-s [{all,csv,tpb,solid}]] [-c {all,audio,video,apps,games,porn,other}] [-o {size,seeders,leechers}] query

search for torrents.

positional arguments:
  query                 search query.

optional arguments:
  -h, --help            show this help message and exit
  -s [{all,csv,tpb,solid}], --site [{all,csv,tpb,solid}]
                        torrent website to search
  -c {all,audio,video,apps,games,porn,other}, --category {all,audio,video,apps,games,porn,other}
                        category to search in
  -o {size,seeders,leechers}, --order {size,seeders,leechers}
                        order to sort results inKeybindingsj, n, down  : Move down a row.
k, p, up    : Move up a row.
f, d, pgdn  : Move down a page.
b, u, pgup  : Move up a page.
g, <, home  : Go to first row.
G, >, end   : Go to last row.
v, i, enter : View row data.
q, x, escape: Exit.
Package: ctorrepr
ctorreprA mix-in that provides __repr__() from constructor arguments.Free software: MIT licenseDocumentation:https://ctorrepr.readthedocs.io.UsageTo use, simply inherit from~ctorrepr.CtorReprthen implement its~ctorrepr.CtorRepr._collect_repr_args()to match your existing__init__()method:>>> from ctorrepr import CtorRepr
>>> class X(CtorRepr):
...     def __init__(self, x1='x1', x2='x2', *poargs, **kwargs):
...         super().__init__(*poargs, **kwargs)
...         self.x1 = x1
...         self.x2 = x2
...     def _collect_repr_args(self, poargs, kwargs):
...         super()._collect_repr_args(poargs, kwargs)
...         poargs[:0] = self.x1, self.x2
>>> class Y(CtorRepr):
...     def __init__(self, *y, **kwargs):
...         super().__init__(**kwargs)
...         self.y = y          # completely consumes positional args
...     def _collect_repr_args(self, poargs, kwargs):
...         super()._collect_repr_args(poargs, kwargs)
...         poargs[:0] = self.y
>>> class Z(CtorRepr):
...     def __init__(self, *poargs, zk='zk', **kwargs):
...         super().__init__(*poargs, **kwargs)
...         self.zk = zk
...     def _collect_repr_args(self, poargs, kwargs):
...         super()._collect_repr_args(poargs, kwargs)
...         kwargs.update(zk=self.zk)
>>> class W(X, Y, Z):
...     def __str__(self):
...         return repr(self)
>>> print(' '.join(t.__name__ for t in W.mro()))
W X Y Z CtorRepr object
>>> print(W())
W('x1', 'x2', zk='zk')
>>> print(W(24))
W(24, 'x2', zk='zk')
>>> w = W(24, 25, 'y1', 'y2')
>>> w.y
('y1', 'y2')
>>> print(w)
W(24, 25, 'y1', 'y2', zk='zk')
>>> print(W(zk=100))
W('x1', 'x2', zk=100)CreditsThis package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.History0.1.0 (2017-07-31)First release on PyPI.
Package: ctower
ctowerControl Tower CLI application.Installation# Make sure you have python:^3.7python3--version# Install the PyPI package w/pip3installctower# orpython3-mpipinstallctowerPoetrypoetryinit
poetryinstall
poetrypublish--build--username$PYPI_USERNAME--password$PYPI_PASSWORD# generate CLI application documentationpoetryshell
typerctower.mainutilsdocs--namectower--outputCLI-README.mdpipinstallctower
ctowerapplystrongly-recommendedTaskslogic for enabling controlsenable singular control to ousync one account to other--strict to mirror the controlsnothing to just merge apply? maybe promptingshow accounts under ous
Package: ctox
[tox](http://tox.readthedocs.org/) but with conda.[![Build Status](https://travis-ci.org/hayd/ctox.svg?branch=master)](https://travis-ci.org/hayd/ctox)This is a really rough hack to replicate tox using conda (Note that tox isprofessionally supportedwhilst ctox isn’t supported). In the long-term a
much better solution is to add conda support to tox…Currently:conda envs and dependancies are cached (very naively)some tox substitutions (some missing features)~~no~~ some cli options (lots of missing features)no parallel support (yet)bugs (probably lots)However, the neat thing is that it makes tox-like testing on a machine with
conda installed, but not all python versions are installed.In conclusion, you’re probably better off using tox, here be :dragon:s.UsageHave conda installed on your system. The recommended way (I think) is via
[miniconda](http://conda.pydata.org/miniconda.html), the not recommended
way (which will almost certainly fail) is via pip, please don’t use this
with conda installed via pip.In the project’s directory (which has atox.inifile):`sh cd project_dir ctox # or to pdb into any failing environments ctox----pdb--pdb-fail`Note this assumes you have something like `nosetest {posargs}` (or
`py.test {posargs}`) in the projects tox.ini file. which this will be replaced
with `nosetest –pdb –pdb-fail` (or `py.test –pdb –pdb-fail`).WhyI was sick ofInterpreterNotFoundwhen trying to use tox having installed
python with conda. This solves that and I thought it wouldn’t take
very long to put together. No doubt I should’ve just hacked on tox, which in
the long-run will be the best solution, but there you are!
Package: ctoybox
ctoyboxThis is the bare-bones api forToybox.Dependenciespillow (for rendering images)numpy (for allocating arrays of the right type for the FFI)cffipygame (optionally forhuman_play)Build locallyIf you want to make changes to any part of the rust-python pipline, you will need to build and test locally (ran from top-level of the repository):pip install -r ctoybox/requirements.txt
pip install --upgrade pip
pip install maturin
cd ctoybox
./test.sh
Package: ctpbee_analyzer
from ctpbee_analyzer import cost
@cost
def test1():
    a = [1] * (10 ** 6)
    b = [2] * (2 * 10 ** 7)
    del b
    return a


@cost
def test2():
    a = [1] * (10 ** 6)
    b = [2] * (2 * 10 ** 7)
    return a


if __name__ == '__main__':
    test1()
    test2()>>
   Function        Spend           CPU             Memory
   ===============================================================
   test1           111.734 ms      98.4 %          19.164 MiB

   Function        Spend           CPU             Memory
   ===============================================================
   test2           110.564 ms      108.5 %         171.629 MiB
Package: ctpbot
CtpbotA script to find and react to !CTP commands in comments on the Hive blockchain.Please note that this software is in early Beta stage, and that you need to know what you are doing to use it.InstallationFor Ubuntu and Debian install these packages:sudo apt-get install python3-pip build-essential libssl-dev python3-dev python3-setuptools python3-gmpy2Install Python PackagesInstall ctpbot by (you may need to replace pip3 by pip):sudo pip3 install -U ctpbot beem hiveengineConfigure And Run CtpbotFirst clone the Github repository to your home directory:cd ~
git clone https://github.com/flaxz/ctpbotAfter that edit your comment templates using Nano, there are 4 comment templates.sudo apt install nano 
cd ~/ctpbot/templates
ls
nano COMMENT-TEMPLATE-1-2-3-4Then edit your configuration file.cd ~/ctpbot
nano ctpbot.configCopy your configuration and comment templates to your working directory.cd ~/ctpbot
sudo cp -R templates /usr/local/bin
sudo cp ctpbot /usr/local/bin
sudo cp ctpbot.config /usr/local/bin
sudo cp run-ctpbot.sh /usr/local/binMake the startup scripts executable.cd /usr/local/bin
sudo chmod u+x ctpbot
sudo chmod u+x run-ctpbot.shCopy the Systemd config to it's directory.cd ~/ctpbot
sudo cp ctpbot.service /etc/systemd/systemReload Systemd and start the bot.sudo systemctl daemon-reload
sudo systemctl start ctpbot.serviceGet status and error messages.sudo systemctl status ctpbot.service
qStop the bot.sudo systemctl stop ctpbot.serviceAs has been stated above this bot is in early Beta and bugs and issues are likely to occur.
Package: ctp-python
# Python版CTP期货接口这套接口使用swig为官方C++版CTP接口提供Python版API，同时支持Linux/Mac/Windows。## 注意事项本项目出于个人兴趣及分享目的，与上期所CTP官方无任何关系。本人不对使用这套库的任何后果负责。本人生产环境使用Linux，其他平台仅编译测试通过已通过github workflow编译好发布至pypiLinux已测试环境：Debian stable amd64Mac已测试环境：Mac OS Ventura（M1 Mac Mini，API版本6.6.9以上，Intel Mac未测试）Windows已测试环境：Windows 11 64位（API版本6.6.9以上）api目录中结尾带`.c`的版本号为测评版CTP返回的GBK编码字符串已经全部自动转换为UTF-8市场数据中的极大值代表无数据，为可读性起见打印整个结构体时会显示为None## 安装方法` pip installctp-python==6.6.9`只支持6.6.9及更新的CTP版本已编译的二进制版本支持Python3.7 - 3.11已编译的二进制版本支持平台：Windows amd64，Linux amd64，MacOS arm64 和 amd64其他版本请自行尝试编译（前提是有对应的CTP C++链接库），具体方法见下## 编译环境准备#### Windows 111. 安装编译环境` winget install Microsoft.VisualStudio.2022.BuildTools `> 然后菜单栏搜索并打开Visual Studio Installer，修改Build Tools的配置，将使用C++的桌面开发勾选上并安装2. 安装Python（以miniconda为例）` winget install miniconda3 conda init `3. 安装swig命令，以及iconv库` conda install-cconda-forgeswig libiconv `>可能需要关闭并重新打开命令行#### Mac OS1. 先在App Store中找到并安装Xcode，然后再安装Xcode命令行工具`xcode-select--install`> 在弹出的窗口确认2. 安装Python（推荐使用pyenv）
> 略3. 安装swig命令（以homebrew为例）` brew install swig `#### Linux> 使用系统自带包管理器安装swig和gcc/g++编译器即可> 推荐使用pyenv安装管理python版本## 安装说明1. 克隆代码到本地` git clonegit@github.com:keli/ctp-python.gitcdctp-python`2. 编译安装` python setup.py install `> 或` pip install . `版本选择（可选）目前默认使用的是6.6.9 版本。如果需要链接和使用其他版本，只需要在编译安装前，设置API_VER环境变量为相应版本即可。以6.6.9.c版为例:> Linux/Mac(bash/zsh)：` export API_VER=6.6.9.c `> Windows：` set API_VER=6.6.9.c `## 测试> 打开python shell，检查是否能正常import ctp` $ python Python 3.11.3 Type "help", "copyright", "credits" or "license" for more information. >>> import ctp >>> `> 跑一下测试（以simnow服务器为例，需要在simnow网站注册用户）` pytest-stests/test_trader.py--front=tcp://218.202.237.33:10203--broker=9999--user=<investor_id>--password=<password>--app=simnow_client_test--auth=0000000000000000`## Linux下穿透式监管信息采集常见问题到底需要不需要LinuxDataCollect.so?自写CTP程序直连是不需要的，如果你不确定，那就是不需要报错Decrypt handshake data failedCTP版本与服务器端不一致，首次跟期货公司采集的时候请用“评测版本”如6.3.13，后续生产环境请用“生产版本”如6.3.15报错 dmidecode not found通常默认都有装，加一下dmidecode命令的相关路径到PATH，一般是/usr/sbin报一堆 permission denied给dmidecode加下权限`sudo chmod a+s /usr/sbin/dmidecode`拿不到硬盘序列号Debian系可以`sudo adduser username disk`把自己加到disk组（加完需要重新登录，输入`groups`确认自己已经在disk组里），或者直接给磁盘设备文件加读权限`sudo chmod a+r /dev/sda`不知道什么情况，xx数据拿不到用以下python脚本自己慢慢试吧，当打印出来是第一行结果是0则成功了，否则是-1。第二行是取到的信息，格式为```(操作系统类型)@(信息采集时间)@(内网IP1)@(内网IP2)@(网卡MAC1)@(网卡MAC2)@(设备名)@(操作系统版本)@(Disk_ID)@(CPU_ID)@(BIOS_ID)````python import ctypes dll =ctypes.cdll.LoadLibrary('./thosttraderapi_se.so')info = (ctypes.c_char *344)()length = ctypes.c_int() print(dll._Z21CTP_GetRealSystemInfoPcRi(info,ctypes.byref(length)))print(info.value) `## 其他常见问题为什么报UTF-8和GBK的转码错误？这个是内存管理的问题而不是转码的问题，ctp库会释放掉它传给你的回调函数的内容，当你打印的时候这块内存已经free掉了，所以就报转码失败了。这个最理想的处理是改swig定义来自动把相应的结构体内容拷到python，但是我还没太搞清楚怎么在swig中做这件事。我自己的代码里面需要缓存起来的ctp结构只有很少的几处，直接在用户代码中手动拷贝到自己定义的python数据类型就可以了。
Package: ctprint
Hi there! Here a Color-Tagged PrintCross-platform colorization terminal text using '<tags> embedded in strings' (text markup)InstallationpipinstallctprintorpoetryaddctprintUsageInitializationfromctprintimportctp,ctdecode,cterr,ctlog# callablectp.help() -> Noneprint colored and some interactive help-message. nothing returnctp.help()# print help messagectp(*strings: str) -> Noneobj of ctprint. decode<tags>in the strings and print it. nothing return# decode <tags> and then print the stringctp('<bw> black text on white background /> default formating')ctdecode( *strings: str) -> strdecode<tags>in the strings and return it decoded# decode <tags> in the strings and return decoded stringstring0=' background /> default'string1=' formating'ctdecode('<bw> black text on white',string0,string1)return stringcterr(exception=None, comment='') -> Noneexception required. print colored error message from try/except. nothing returntry:1/0# any broken lineexceptExceptionas_ex:cterr(_ex)ctlog(**vars) -> Nonevars required. print colored message with names $ values of all **vars. nothibg returnvar0=var1=0defexample_ctlog():var2='string val'var3={'ctp_string':'<bg_red><red>red text on red background (NO) >'}# out of the function, var0=var2 - nothing problems.ctlog(var0=var0,var1=var1,var2=var2,var3=var3)ctprint.help()Thankscolorama - wonderfull lib. Makes ANSI escape character sequences work under MS Windows.
Package: ctpwrapper
CTP期货 API Python WrapperCTP WebsiteVersion: v6.7.0Platform: Linux 64bit, Windows 64bitPython Requirement: x86-64Especially Support PyPy3-3.6 Linux 64bitInspire By lovelylainInstallBefore you install ctpwrapper package, you need to make sure you have
already install cython package.>>>pip install cython --upgrade
>>>pip install ctpwrapper --upgradeDonate [捐助]⚠️⚠️ notice ⚠️⚠️sometimes quote the market futures data, but there is no trading data from the API stream,
better just addtime.sleep(2)func call afterInit()method invoked, this could help to solve no data response issue.Demosample codesamplesissueshttps://github.com/nooperpudd/ctpwrapper/issues/62this is a temporary solution for the UnicodeDecodeError issue.Traceback (most recent call last):
   File "ctpwrapper/TraderApi.pyx", line 1402, in ctpwrapper.TraderApi.TraderSpi_OnRspQrySettlementInfo
   File "/root/python/futures/trader_main.py", line 149, in OnRspQrySettlementInfo
     print(pSettlementInfo.Content)
   File "/root/python/futures/.venv/lib/python3.9/site-packages/ctpwrapper/base.py", line 28, in __getattribute__
     return value.decode("gbk")
 UnicodeDecodeError: 'gbk' codec can't decode byte 0xd2 in position 499: incomplete multibyte sequenceerror_message=""defOnRspQryTradingAccount(self,pTradingAccount,pRspInfo,nRequestID,bIsLast):print("OnRspQryTradingAccount")print("nRequestID:",nRequestID)print("bIsLast:",bIsLast)print("pRspInfo:",pRspInfo)print("pTradingAccount:",pTradingAccount)# need to check is last message from the server.globalerror_messageifnotbIsLast:error_message+=pRspInfo.ErrorMsgelse:error_message+=pRspInfo.ErrorMsgifisinstance(error_message,bytes):error_message.decode("gbk")DocumentationCTP documentation can be found in thedocsContactIf you have any question about the ctpwrapper API, contact365504029@qq.com
Package: ctpy
ChemicalTaggerPy这是一个调用中科大校内网ChemicalTagger REST-API的包fromctpyimportChemicalTaggersent='To a stirred solution of 4-hydroxypiperidine (0.97 g, 9.60 mmol) in anhydrous dimethylformamide (20 mL) at 0°C was added 1-(bromomethyl)-4-methoxybenzene (1.93 g, 9.60 mmol) and triethylamine (2.16 g, 21.4 mmol).'mols=ChemicalTagger.sentence_to_mols(sent)# mols: [{'name': '4-hydroxypiperidine', 'smiles': 'OC1CCNCC1'},#        {'name': 'dimethylformamide', 'smiles': 'CN(C=O)C'},#        ...]