Saravanan666/pypi-org huggingface dataset:
Package: cjm-torchvision-tfms
cjm-torchvision-tfmsInstallpipinstallcjm_torchvision_tfmsHow to usefromPILimportImageimg_path='./images/call-hand-gesture.png'# Open the associated image file as a RGB imagesample_img=Image.open(img_path).convert('RGB')# Print the dimensions of the imageprint(f"Image Dims:{sample_img.size}")# Show the imagesample_imgImage Dims: (384, 512)fromcjm_torchvision_tfms.coreimportResizeMax,PadSquare,CustomTrivialAugmentWideimporttorchfromtorchvisionimporttransformsfromcjm_pytorch_utils.coreimporttensor_to_pilfromcjm_pil_utils.coreimportstack_imgstarget_sz=384print(f"Source image:{sample_img.size}")# Create a `ResizeMax` objectresize_max=ResizeMax(max_sz=target_sz)# Convert the cropped image to a tensorimg_tensor=transforms.PILToTensor()(sample_img)[None]print(f"Image tensor:{img_tensor.shape}")# Resize the tensorresized_tensor=resize_max(img_tensor)print(f"Padded tensor:{resized_tensor.shape}")# Display the updated imagetensor_to_pil(resized_tensor)Source image: (384, 512)
Image tensor: torch.Size([1, 3, 512, 384])
Padded tensor: torch.Size([1, 3, 384, 288])print(f"Resized tensor:{resized_tensor.shape}")# Create a `PadSquare` objectpad_square=PadSquare(shift=True)# Pad the tensorpadded_tensor=pad_square(resized_tensor)print(f"Padded tensor:{padded_tensor.shape}")# Display the updated imagestack_imgs([tensor_to_pil(pad_square(resized_tensor))foriinrange(3)])Resized tensor: torch.Size([3, 384, 288])
Padded tensor: torch.Size([3, 384, 384])num_bins=31custom_augmentation_space={# Identity operation doesn't change the image"Identity":(torch.tensor(0.0),False),# Distort the image along the x or y axis, respectively."ShearX":(torch.linspace(0.0,0.25,num_bins),True),"ShearY":(torch.linspace(0.0,0.25,num_bins),True),# Move the image along the x or y axis, respectively."TranslateX":(torch.linspace(0.0,32.0,num_bins),True),"TranslateY":(torch.linspace(0.0,32.0,num_bins),True),# Rotate operation: rotates the image."Rotate":(torch.linspace(0.0,45.0,num_bins),True),# Adjust brightness, color, contrast,and sharpness respectively."Brightness":(torch.linspace(0.0,0.75,num_bins),True),"Color":(torch.linspace(0.0,0.99,num_bins),True),"Contrast":(torch.linspace(0.0,0.99,num_bins),True),"Sharpness":(torch.linspace(0.0,0.99,num_bins),True),# Reduce the number of bits used to express the color in each channel of the image."Posterize":(8-(torch.arange(num_bins)/((num_bins-1)/6)).round().int(),False),# Invert all pixel values above a threshold."Solarize":(torch.linspace(255.0,0.0,num_bins),False),# Maximize the image contrast by setting the darkest color to black and the lightest to white."AutoContrast":(torch.tensor(0.0),False),# Equalize the image histogram to improve its contrast."Equalize":(torch.tensor(0.0),False),}# Create a `CustomTrivialAugmentWide` objecttrivial_aug=CustomTrivialAugmentWide(op_meta=custom_augmentation_space)# Pad the tensoraug_tensor=trivial_aug(resized_tensor)print(f"Augmented tensor:{aug_tensor.shape}")# Display the updated imagestack_imgs([tensor_to_pil(trivial_aug(resized_tensor))foriinrange(3)])Augmented tensor: torch.Size([3, 384, 288])
Package: cjm-yolox-pytorch
cjm-yolox-pytorchInstallpipinstallcjm_yolox_pytorchHow to useimporttorchfromcjm_yolox_pytorch.modelimportMODEL_TYPES,build_modelSelect model typemodel_type=MODEL_TYPES[0]model_type'yolox_tiny'Build YOLOX modelyolox=build_model(model_type,19,pretrained=True)test_inp=torch.randn(1,3,256,256)withtorch.no_grad():cls_scores,bbox_preds,objectness=yolox(test_inp)print(f"cls_scores:{[cls_score.shapeforcls_scoreincls_scores]}")print(f"bbox_preds:{[bbox_pred.shapeforbbox_predinbbox_preds]}")print(f"objectness:{[objectness.shapeforobjectnessinobjectness]}")The file ./pretrained_checkpoints/yolox_tiny.pth already exists and overwrite is set to False.
cls_scores: [torch.Size([1, 19, 32, 32]), torch.Size([1, 19, 16, 16]), torch.Size([1, 19, 8, 8])]
bbox_preds: [torch.Size([1, 4, 32, 32]), torch.Size([1, 4, 16, 16]), torch.Size([1, 4, 8, 8])]
objectness: [torch.Size([1, 1, 32, 32]), torch.Size([1, 1, 16, 16]), torch.Size([1, 1, 8, 8])]
Package: cjnfuncs
cjnfuncs - A framework and collection of utility functions for script writingcjnfuncs is comprised of several modules (links to respective documentation)NOTE:  Since relative links to other .md files do not work on PyPI, please go to thecjnfuncs GitHub repoto read the documentation.moduleDescription/PurposecoreSet up the base environmentconfigmanFeature-rich configuration file toolsettimevalueHandle time values with units, such as '5m' (5 minutes)mungePathEase-of-use pathlib extension for constructing and manipulating file pathsdeployfilesPush bundled setup files within a package to the proper user/system locationsresourcelockInter-process resource lock mechanismSMTPSend notification and email messagesDeveloped and tested on Python 3.6.8, and supported on all higher Python versions.
Developed on Linux.  Not supported on Windows (posix-ipc module dependency).In this documentation, "tool script" refers to a Python project that imports and uses cjnfuncs. Some may be simple scripts, and others may themselves be installed packages.Installation and usagepip install cjnfuncsA package template using cjnfuncs is available athttps://github.com/cjnaz/tool_template, which
is the basis of PyPI posted tools such as:lanmonitorwanstatusroutermonitorProject repo:https://github.com/cjnaz/cjnfuncsRevision history2.2 240119 - Added SMTP DKIM support.  Set SMTP server connect timeout to EmailRetryWait.2.1 240104 - Partitioned to separate modules.
Added modify_configfile.
Added native support for float, list, tuple, and dict in loadconfig().
Added getcfg() type checking.
Documentation touch for logging formats in config file.
Improved snd_notif failure logging.
Added email/notif send retries.
Added resourcelock module.2.0.1 230222 - deploy_files() fix for files from package2.0 230208 - Refactored and converted to installed package.  Renamed funcs3 to cjnfuncs....0.1 180524 - New.  First github posting
Package: cjolowicz-scripts
Welcome to my assortment of random Python scripts,
all of which come with no guarantees whatsoever.InstallationYou can install these scripts viapipfromPyPI:$pipinstallcjolowicz-scriptsUsagePlease see theDocumentationfor details.ContributingContributions are very welcome.
To learn more, see theContributor Guide.LicenseDistributed under the terms of theMIT license,
these scripts are free and open source software.IssuesIf you encounter any problems,
pleasefile an issuealong with a detailed description.CreditsThis project was generated from@cjolowicz’sHypermodern Python Cookiecuttertemplate.
Package: cjourney
Cjourney[TOC]Problem经常见到使用 sankey, funnel 或者其他一些图片来分析 app 中的 customer journey,但是这些方式聚都是合一段时间的数据,粒度太大且是单向的.Idea最近看到了一些东西, Airbnb 的一篇关于 Embedding 的的论文以及 Tensorflow 的图像和文本处理 API. 每个客户的行为都可以编成序列, 用颜色编码行为并进行 Padding, 排序后就可以绘制一张customer journey map. 相似行为的客户序列会聚集在一起形成区域性的色块.GuideInstallpip install --user --upgrade cjourneyUsefrom cjourney import Cjourney
import pandas as pd

cc = Cjourney()
df = pd.read_parquet('event_test.parquet')
cc.fit_on_actions(df, 'event')
cc.actions_to_sequences(cusid='personid', event='event', timestamp='cdate')
cc.padding(50, sampsize=10000)Next Version目前版本一行为一个客户的行为序列, 一个像素为一个动作. 下一版本中纵坐标可以替换为秒, 若一个动作持续时间较长, 则会占据多个像素位.
Package: cjrh_math
cjrh_mathA collection of handy maths functions.Streaming mean and varianceSometimes it can be very useful to update anexistingmean and variance
with new data, rather than have to calculate it again over the whole set.
The functions below implement one of the algorithms described
inWikipedia.defupdate_mean(n:int,mean:float,value:float)->floatGiven a newvalue, calculate a new mean using the existingmeanand
the size of data,n, seen so far.defupdate_pvariance(n:int,mean:float,var:float,value:float)->floatdefupdate_variance(n:int,mean:float,var:float,value:float)->floatGiven a newvalue, calculate a new variance using the existingmean,
existing variancevar, and the size of data,n, seen so far.Note thatupdate_variance()is forsamplevariance whileupdate_pvariance()is forpopulationvariance.All functions are pure and therefore thread-safe.
Package: cjrh_template
cjrh_templateThis package offers a very thin subclass ofstring.Templatewhich adds a few extra features to the standard library class.NOTE: this package has no dependencies and will therefore not incur an
additional 3rd-party dependency cost. This is intentional and will not
change.Get var names in the templateTheplaceholders()method returns a generator of the variable names
inside the template:# main.pyfromcjrh_templateimportTemplates='$person1 gave $object to $person2'tmpl=Template(s)print(list(tmpl.placeholders()))Output:$pythonmain.py['person1','object','person2']A typical use-case for this is to be able to see a UI with the required
parameters for template substitution. Also, note that the method returns
a generator that will return the names sequentially in a memory-efficient
way.There is also anallow_repeatsparameter toplaceholders()that will
allow the generator to return even repeated variable names, depending on the
sequence in which they’re found in the template. This could be used to generate
frequency counts of variable names. Default isFalse.
Package: cjtool
READMEProvide some tools in C++ development.Extracted raw strings from the C++ codeThe source code ishere. The python package ishere.1. How to installpip install cjtool2. CommandA new commandstringrep.exeis added after the installation.The commandstringrepis to replace the raw string to a pointer. For exampleautom=py::module::import("test_cmake_build");// convert to the line belowautom=py::module::import(pStrTest_cmake_build);// the definiation of the string is as belowconstexprchar*pStrTest_cmake_build="test_cmake_build";Help message from the commandstringrepis as below.$ stringrep -h
usage: stringrep [-h] [-i] [-c] [-g] [-p PREFIX] file

positional arguments:
  file                  set the cpp file name

optional arguments:
  -h, --help            show this help message and exit
  -i, --inplace         replace the file in place (default: False)
  -c, --capitalize      capitalize the captured word, for example,
                        "tom" turns to "Tom" (default: False)
  -g, --generate        generate the header lines for the captured
                        strings (default: False)
  -p PREFIX, --prefix PREFIX
                        set the prefix for raw string (default: pStr)How to build and uploadpythonsetup.pybdist_wheel--universal
twineuploaddist/*Test on local machinepythonsetup.pyinstall
Package: cj-tools
sql-data一款用于mysql数据查询存储+时间格式化处理得工具使用方式1、安装 pip install sql-data==0.1.52、# 用于创建config默认配置并返回文件位置，请按照默认格式进行个人mysql数据库得配置config_path=sql_data.get_config_path()[127.0.0.1]
HOST = 127.0.0.1
PORT = 3306
DB_USER = root
DB_PWD = 12345内置函数fromsql_dataimportexec_sql_mysql,get_data_from_mysql,saved_data_to_mysqlfromsql_dataimportdate_fmtsql="select * from mysql_table"# 获取数据 -> DataFromdata_df=sql_data.get_data_from_mysql(sql,"db_name","127.0.0.1")# 数据存储sql_data.saved_data_to_mysql(sql,"db_name","127.0.0.1")exec_sql="delect from mysql_table"## 数据删除、更改和插入sql_data.exec_sql_mysql(exec_sql,"db_name","127.0.0.1")date_value=["2022年08月08日 19:19","2022年08月08日","2022-08-08 19:40","2022-08-08 10:55:32","08/8/2022","08-08-22","2022.8","20220808"]date_df=pd.DataFrame(date_value,columns=["time"])# 对符合以上日期格式得列进行格式化转换 -> Y-M-Ddate_fmt_df=date_fmt.column_fmt(date_df)importdatetimeasdt# today = "2022-09-01" ortoday=dt.date.today()# 返回days天之后得日期，days<0则计算之前日期fmt_date=date_fmt.day_add(today,days=7)# 返回weeks周之后得日期，weeks<0则计算之前日期， what_day取值: [1, 7]，设置返回值为星期几得日期fmt_date=date_fmt.week_add(today,what_day=1,weeks=0)# 返回months月之后得日期，months<0则计算之前日期，begin=True为月初日期，begin=False为月末日期fmt_date=date_fmt.month_add(today,months=0,begin=True)
Package: cjunct
cjunctDeclarative parallel process runner.Status: alphaDevelopment environment setupRequires system-wide poetry>=1.3.2, seeofficial documentation.poetryenvusepython3.8
poetryinstall--no-root--syncThe root directory for the source code issrc,
thus one may add it to the project's python path
for better IDE integration.Running tests with coverage on current environmentpoetryrunpytest--cov--cov-report=html:.coverage_reportRunning tests on all available environmentspoetryruntox
Package: cjvalpy
cjvalpyPython bindings ofcjval, the official validator forCityJSONfiles.InstallationpipTo install the latest release:pip install cjvalpyIf you want to compile it yourselfinstall latestRustinstallmaturinmaturin build --releasecd ./target/wheels/pip install [name-wheel].whlwill install it to your local PythonDevelopmentinstallRust(v1.39+)installmaturinmaturin developmove to another folder, andimport cjvalpyshouldn't return any errorUsageMade to be used withcjio:cjiomyfile.city.jsonvalidatebut can be used directly in python:importcjvalpyimportjsonimporturllib.requestf=open("~/data/noise.city.json")fj=json.loads(f.read())js=[]js.append(json.dumps(fj))print("Downloading the Extension JSON schema file(s):")if"extensions"infj:forextinfj["extensions"]:theurl=fj["extensions"][ext]["url"]try:withurllib.request.urlopen(fj["extensions"][ext]["url"])asf:sf=f.read().decode('utf-8')js.append(sf)except:s="'%s' cannot be downloaded\nAbort"%fj["extensions"][ext]["url"]raiseException(s)val=cjvalpy.CJValidator(js)val.validate()re=val.get_report()print(val.get_report())
Package: cjvt-conversion-utils
CJVT conversion utilitiesThis repository is intended for common conversions needed by CJVT developers. It can of course also
be used more broadly, but most of the scripts (with the exception ofjos_msds_and_properties.py)
were written with specific tasks in mind, and may not generalise as expected. Use at your own risk.JOS msds and propertiesYou can use the Msd and Properties to encode, and convert between the two types in either direction
(specifying both the input and output language (English or Slovene)) or just translate between
English and Slovene. Example usage:>>> from conversion_utils.jos_msds_and_properties import Converter, Msd, Properties
>>> converter = Converter()
>>> msd = Msd('Sozem', 'sl')
>>> msd.code
'Sozem'
>>> msd.language
'sl'
>>> properties = converter.msd_to_properties(msd, 'en')
>>> properties.category
'noun'
>>> properties.lexeme_feature_map
{'type': 'common', 'gender': 'feminine'}
>>> properties.form_feature_map
{'number': 'singular', 'case': 'locative'}
>>> properties.language
'en'
>>> msd2 = converter.properties_to_msd(properties, 'sl')
>>> msd2 == msd
True
>>> print(converter.translate_msd(msd, 'en'))
code=Ncfsl, language=en
>>> print(converter.translate_properties(properties, 'sl'))
language=sl, category=samostalnik, lexeme features={'vrsta': 'občno_ime', 'spol': 'ženski'}, form_features={'število': 'ednina', 'sklon': 'mestnik'}
Package: cjwmodule
Utilities forCJWorkbenchmodules.Workbench modules mayoptionallydepend on the latest version of this Python
package for its handy utilities:cjwmodule.arrow.condition: functions to create Arrow table masks.cjwmodule.arrow.format: functions to convert Arrow arrays to text.cjwmodule.arrow.types: types your Arrow module may accept and return.cjwmodule.arrow.testing: helpers for programming tests.cjwmodule.http: HTTP helpers, including the handyhttpfileformat.cjwmodule.i18n: Atrans()function for producing translatable text.cjwmodule.testing: Functions to help in unit testing.cjwmodule.util.colnames: Functions to help build a valid table's column names.cjwmodule.spec: Functions to load and validate module spec files.cjwmodule.types: Types your module may accept and return.DevelopingRuntoxto confirm that unit tests passWrite a failing unit test intests/. (toxshould fail now.)Make it pass by editing code incjwmodule/Runpoetry run extract-messagesif i18n data changedRuntoxto confirm that unit tests pass againSubmit a pull requestPreserve a consistent API. Workbench will upgrade this dependency without module
authors' consent. Add new features; fix bugs. Don't alter existing behavior.I18nMarking strings for translationStrings incjwmodulecan be marked for translation usingcjwmodule.i18n._trans_cjwmodule.
Each translation message must have a (unique) ID. ICU is supported for the content.
For example,fromcjwmodule.i18nimport_trans_cjwmoduleerr="Error 404"with_arguments=_trans_cjwmodule("greatapi.exception.message","Something is wrong:{error}",{"error":err})without_arguments=_trans_cjwmodule("greatapi.exception.general","Something is wrong",)Workbench is wired to accept the return value of_trans_cjwmodulewherever an
error/warning or quick fix is expected.CreatingpocatalogsCalls to_trans_cjwmodulecan (and must) be parsed to createcjwmodule's.pofiles.  Update the.pofiles with:poetry run extract-messagesUnit testingIn case a_trans_cjwmoduleinvocation needs to be unit tested, you can usecjwmodule.testing.i18n.cjwmodule_i18n_messagelike this:fromcjwmodule.testing.i18nimportcjwmodule_i18n_messageimportwith_arguments,without_argumentsassertwith_arguments==cjwmodule_i18n_message("greatapi.exception.message",{"error":"Error 404"})assertwithout_arguments==cjwmodule_i18n_message("greatapi.exception.general")Message deprecationFor backwards compatibility,messages incjwmodule'spofiles are never deleted!PublishingPrepend notes toCHANGELOG.mdabout the new versiongit commitgit pushand wait for Travis to report successgit tag v1.x.y && git push --tagsWait for Travis to push our changes to PyPI
Package: cjworkbench-re2
A drop-in replacement for the re module.It uses RE2 under the hood, of course, so various PCRE features(e.g. backreferences, look-around assertions) are not supported.Known differences between this API and the re module's API:* The error class does not provide any error information as attributes.* The Options class replaces the re module's flags with RE2's options asgettable/settable properties. Please see re2.h for their documentation.* The pattern string and the input string do not have to be the same type.Any Text (unicode in Python 2, str in Python 3) will be encoded to UTF-8.* The pattern string cannot be Text if the options specify Latin-1 encoding.Known issues with regard to building the C++ extension:* Building requires RE2 and pybind11 to be installed on your system.On Debian, for example, install the libre2-dev and pybind11-dev packages.* Building on macOS has not been tested yet and will possibly fail.* Building on Windows has not been tested yet and will probably fail.
Package: cjwpandasmodule
Utilities forCJWorkbenchmodules
that use Pandas.Workbench modules mayoptionallydepend on the latest version of this Python
package for its handy utilities:cjwpandasmodule.validate: functions to check if a DataFrame can be saved
in Workbench.DevelopingRuntoxto confirm that unit tests passWrite a failing unit test intests/Make it pass by editing code incjwpandasmodule/Submit a pull requestWe usesemver. Workbench will upgrade this dependency
(minor version only) without module authors' explicit consent. Features in the
same major version must be backwards-compatible.Publishinggit pushand make sure Travis tests all pass.git tag vX.X.Xgit push --tagsTravisCI will push to PyPi.
Package: cjwparquet
Parquet tools forCJWorkbench.Workbench modules mayoptionallydepend on the latest version of this Python
package for itscjwparquet.api.*functions.InstallationThis is meant to be used within a Docker container. It depends on executables/usr/bin/parquet-to-arrowand/usr/bin/parquet-to-text-stream.Your Dockerfile might look something like this:FROM workbenchdata/parquet-tools:v2.1.0 AS parquet-tools
FROM python:3.8.5-buster AS main

COPY --from=parquet-tools /usr/bin/parquet-to-arrow /usr/bin/parquet-to-arrow
COPY --from=parquet-tools /usr/bin/parquet-to-text-stream /usr/bin/parquet-to-text-stream

# And now that these binaries are accessible, you can install cjwparquet...UsagefrompathlibimportPathimportcjwparquetimportpyarrow# Write a Parquet filecjwparquet.write(Path("test.parquet"),pyarrow.table({"A":["foo","bar"]}))# Test whether a file looks like a Parquet fileifcjwparquet.file_has_parquet_magic_number(Path("test.parquet")):# Read a Parquet filewithcjwparquet.open_as_mmapped_arrow(Path("test.parquet"))astable:asserttable.to_pydict()=={"A":["foo","bar"]}# Convert to texttext=cjwparquet.read_slice_as_text(Path("test.parquet"),format="csv",only_columns=range(0,20),only_rows=range(0,200),)asserttext=="A\nfoo\nbar"DevelopingRun tests:docker build .Write a failing unit test intests/Make it pass by editing code incjwparquet/black cjwparquet tests && isort cjwparquet testsSubmit a pull requestBe very, very, very careful to preserve a consistent API. Workbench will
upgrade this dependency without module authors' explicit consent. Add new
features; fix bugs. Never change functionality.PublishingWrite a newversion=tosetup.py. Adhere tosemver. (As changes must be backwards-compatible,
the version will always start with1and look like1.x.y.)Prepend notes toCHANGELOG.mdabout the new versiongit commitgit tag v1.x.ygit push --tags && git pushWait for Travis to push our changes to PyPI
Package: cjwt
Cat JWTInstallpip3 install cjwtUsageusage: cjwt [-h] [--secret [SECRET]] [file]

positional arguments:
  file

options:
  -h, --help         show this help message and exit
  --secret [SECRET]  JWT secretExamplesRead header and claimsRead from stdin$echo'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJ0ZXN0IjoiYWJjZGVmIn0.tPJ7bVKyF_FMFQaRT6n7dvhEBnyiBRGhVlwacTsy0mI'|cjwt
alg:HS256
typ:JWT
sub:1234567890name:JohnDoe
iat:1516239022test:abcdefRead from file$cjwt/tmp/jwt.txt
alg:HS256
typ:JWT
sub:1234567890name:JohnDoe
iat:1516239022test:abcdefRead from .roadtools_auth$cat.roadtools_auth|cjwt
typ:JWT
nonce:<cut>
alg:<cut>
x5t:<cut>
kid:<cut>
aud:https://graph.microsoft.com/
<snip>Verify secretecho 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJ0ZXN0IjoiYWJjZGVmIn0.tPJ7bVKyF_FMFQaRT6n7dvhEBnyiBRGhVlwacTsy0mI' | cjwt --secret 'secret'
alg: HS256
typ: JWT
sub: 1234567890
name: John Doe
iat: 1516239022
test: abcdefecho 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJ0ZXN0IjoiYWJjZGVmIn0.tPJ7bVKyF_FMFQaRT6n7dvhEBnyiBRGhVlwacTsy0mI' | cjwt --secret 'not-secret'
alg: HS256
typ: JWT
Signature verification failed
Package: ck8s
A POC using python argparse moduleHow to install$ pip install ck8s
$ ck8s --helpUsageFirst set the following env variables:CK8S_PGP_FPCK8S_DEVBOX_VERSIONCK8S_KUBESPRAY_REPOSITORY_PATHCK8S_CLOUD_PROVIDERCK8S_FLAVORCK8S_OPS_REPOSITORY_PATHCK8S_CONFIG_PATHCK8S_ENVIRONMENT_NAMEAnd run :$ ck8s test sc ingress