Saravanan666/pypi-org huggingface dataset:
Package: editty
Editty is a terminal-based non-linear editor for terminal recordings.InstallationSourceWhen installing from source, it is recommended (but not required) to
install Editty in a virtualenv.  To set one up:virtualenv --python=python3 editty-env
source editty-env/bin/activateTo install the latest version from pypi:pip install edittyTo install from a git checkout:pip install .In order to use the dissolve transition, you must run Editty in a
256-color capable terminal, such as gnome-terminal or xterm.UsageAfter installing Editty, you should be able to run it by invokingeditty.  If you installed it in a virtualenv, you can invoke it
without activating the virtualenv with/path/to/editty-venv/bin/editty.
which you may wish to add to your shell aliases.  Useeditty--helpto see a list of command line options available.Once running, pressing the F1 key will show help text.Editty can load recordings in the formats produced by thescriptandttyreccommands.  It renders output inttyrecformat.Editty does not modify the original source files, but rather
references them by path name.  Editty stores the edit decision list in
its own JSON-based file format (use the.editextension).To exit, press CTRL-q.SourceGit repo:http://git.inaugust.com/cgit/editty/ContributingTo send your latest commit as a patch, run:git send-email --to corvus@gnu.org --annotate -1Or, if you don’t havegitsend-emailconfigured, run:git format-patch --stdout HEAD~1 > /tmp/editty.patchAnd send/tmp/editty.patchtocorvus@gnu.orgusing your email
client.LicenseEditty is licensed under the GPLv3 or later.  Please see the COPYING
file for details.
Package: ediwheel
Python EDIWHEEL - A Python package for data exchange in the tyre industryDISCLAIMER: This is not an official EDIWHEEL package. It is a third-party implementation of the EDIWHEEL standard, and is in no way affiliated with any company or organization. Use at your own risk, no warranty is provided.SummaryThis package is a Python implementation of the EDIWHEEL standard for data exchange in the tyre industry. It is based on theEDIWHEEL standard.This standard uses XML requests to make stock inquiries and to place orders. The responses are also in XML format.InstallationThe package can be installed using pip:pip install ediwheelUsageTo use this package, you will need to obtain API authentication credentials from a given supplier.A config is instantiated as such:fromediwheelimportEdiConnectorConfig,EdiConnectorconfig=EdiConnectorConfig(host="https:/some_api_url.com",username="username",password="password",id="customer_id",timeout_s=10,)connector=EdiConnector(config)connector.enquiry("EAN_CODE","MANUFACTURER_CODE")There is also a method available for batch queries, which performs better for large updates of stock.
Usually, the request will time out for large batches, therefore one must split large lists into smaller batches.results=connector.batch_enquiry(list_of_EANs,list_of_manufacturer_codes)forean,stock,delivery_dateinresults:print(ean,stock,delivery_date)
Package: edk2-basetools
Tianocore Edk2 Python BaseTools (edk2basetools)This is a Tianocore maintained project consisting of a the python source files that make up EDK2 basetools. This package's intent is to provide an easy way to organize and share python code to facilitate reuse across environments, tools, and scripts.  Inclusion of this package and dependency management is best managed using Pip/Pypi.Current ReleaseA minor release occurs for each merged Pull Request, which can be tracked viacommitsorclosed pull requests.ContentThe package contains all python source files necessary to build an EDK2 project. This is a fundamental package and is required for edk2 builds. These tools are typically called by the build system, however each is independently callable.Examples:Build.pySplit.pyTrim.pyAmlToC.pyLicenseAll content in this repository is licensed underBSD-2-Clause Plus Patent License.UsageNOTE: It is strongly recommended that you use python virtual environments.  Virtual environments avoid changing the global python workspace and causing conflicting dependencies.  Virtual environments are lightweight and easy to use.Learn moreTo install runpip install --upgrade edk2-basetoolsTo use in your python codeBuilding with edk2-pytool-extensionsTo perform a build usingedk2-pytool-extensionsinvocables, add thepipbuild-winorpipbuild-unixscope to the platform build file.Building with edk2Follow the normal build process; it will automatically detect and use edk2-basetools pip module if available.CustomBaseTools/BinPipWrappers/WindowsLike or BaseTools/BinPipWrappers/PosixLike path must be set instead of BaseTools/BinWrappers/WindowsLike or BaseTools/BinWrappers/UnixLikeContribution ProcessThis project welcomes all types of contributions.
For issues, bugs, and questions it is best to open agithub issue.Code ContributionsFor code contributions this project leverages github pull requests.  See github tutorials, help, and documentation for complete descriptions.
For best success please follow the below process.Contributor opens an issue describing problem or new desired functionalityContributor forks repository in githubContributor creates branch for work in their forkContributor makes code changes, writes relevant unit tests, authors documentation and release notes as necessary.Contributor runs tests locallyContributor submits PR to master branch of tianocore/edk2-basetoolsPR reviewers will provide feedback on change.  If any modifications are required, contributor will make changes and push updates.PR automation will run and validate tests passIf all comments resolved, maintainers approved, and tests pass the PR will be squash merged and closed by the maintainers.MaintainersLiming Gaogaoliming@byosoft.com.cnRebecca Cranrebecca@bsdio.comDevelopers/ReviewersSee thegithub teamfor more details.DocumentationSee the github repodocsfolder
Package: edl
A python EDL (Edit Decision List) parsing library, based on the ruby EDL
library by Julik Tarkhanovhttp://guerilla-di.org/edl/. Still a work in
progress so collaboration welcome.Uses pytimecode.py to handle the Timecode mathematics and should run on
Python 2.7+https://github.com/simonh10/python-edlUsage:from edl.edl import Parser
parser=Parser('23.98')
with open('file.edl') as f:
    edl=parser.parse(f)
    for event in edl.events:
        print "Event Number:"+str(event.num)
        print "Source file:"+str(event.source_file)
        print "Clip Name:"+str(event.clip_name)Accepted framerate values [‘60’, ‘59.94’, ‘50’, ‘30’, ‘29.97’, ‘25’, ‘24’,
‘23.98’] whole number frame rates are more tested than others, but the accuracy
relies heavily on accuracy of the pytimecode library.Documentation for pytimecode can be found
[here](https://code.google.com/p/pytimecode/).(The MIT License)Copyright © 2013 Simon Hargreaves <simon@simon-hargreaves.com>Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the ‘Software’), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Package: edl-reader
A python EDL (Edit Decision List) parsing library, based on the ruby EDL
library by Julik Tarkhanovhttp://guerilla-di.org/edl/. Still a work in
progress so collaboration welcome.https://github.com/cgwire/edl-readerUsage:from edl import Parser
parser = Parser("23.98")
with open("file.edl") as f:
    edl = parser.parse(f)
    for event in edl.events:
        print("Event Number: %s" % (event.num))
        print("Source file: %s" % (event.source_file))
        print("Clip Name: %s " % (event.clip_name))Accepted framerate values [‘60’, ‘59.94’, ‘50’, ‘30’, ‘29.97’, ‘25’, ‘24’,
‘23.98’] whole number frame rates are more tested than others, but the accuracy
relies heavily on accuracy of the pytimecode library.Documentation for pytimecode can be found
[here](https://code.google.com/p/pytimecode/).(The MIT License)Copyright © 2013 Simon Hargreaves <simon@simon-hargreaves.com>Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the ‘Software’), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED ‘AS IS’, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Package: edlstrip
📺 channels-edl-stripperStrips commercials off Channels DVR recordings using outputted EDLPrerequisitesPython 3.8+pipffmpegGetting Startedpip install -r requirements.txt
python edlstrip.py movie.mpg movie.epg --vcodec libx264 -o movie_comskipped.mp4Usageusage: edlstrip.py [-h] [--vcodec VCODEC] [--acodec ACODEC] [-o OUT_FILE] [--confirm-copy] video edl

Strips commercials off Channels DVR recordings using outputted EDL

positional arguments:
  video                 video file to strip
  edl                   EDL file used to control stripping

optional arguments:
  -h, --help            show this help message and exit
  --vcodec VCODEC       the video codec used to trancode (default: libx264)
  --acodec ACODEC       the audio codec used to trancode (default: copy)
  -o OUT_FILE, --outfile OUT_FILE
                        the file to write out to (default: <video>_comskipped.mkv)
  --confirm-copy        confirms and disables copy vcodec usage promptDockerComing Soondocker-composeversion: 3
Package: edm
Evolutionary Data Measures: Understanding the Difficulty of Text Classification TasksAuthors:Ed Collins, Nikolai Rozanov, Bingbing ZhangContact:contact@wluper.comIn the paper of the corresponding name, we discuss how we used an evolutionary algorithm to discover which statistics about a text classification dataset most accurately represent how difficult that dataset is likely to be for machine learning models to learn. We presented there the difficulty measure which we discovered and have provided this Python package of code which can calculate it.InstallationThis code is pip-installable so can be installed on your machine by running:pip3 install edmThe code requires Python 3 and NumPy.It is recommended that you install this code in avirtualenv:$ mkdir myvirtualenv/
$ virtualenv -p python3 myvirtualenv/
$ source bin/activate
(myvirtualenv) $ pip3 install edmRunningTo calculate the difficulty of a text classification dataset, you will need to provide two lists: one of sentences and one of labels. These two lists need to be the same length - i.e. every sentence has a label. Each item of data should be an untokenized string and each label a string.>>>sents,labels=your_own_loading_function(PATH_TO_DATA_FILE)>>>sents["this is a positive sentence","this is a negative sentence",...]>>>labels["positive","negative",...]>>>assertlen(sents)==len(labels)TrueThis code doesnotsupport the loading of data files (e.g. csv files) into memory - you will need to do this separately.Once you have loaded your dataset into memory, you can receive a "difficulty report" by running the code as follows:fromedmimportreportsents,labels=your_own_loading_function(PATH_TO_DATA_FILE)print(report.get_difficulty_report(sents,labels))Note that if your dataset is very large, then counting the words of the dataset may take several minutes. The Amazon Reviews dataset fromCharacter-level Convolutional Networks for Text
Classificationby Xiang Zhang, Junbo Zhao and Yann LeCun, 2015 which contains 3.6 million Amazon reviews takes approximately 15 minutes to be processed and the difficulty report created. A loading bar will be displayed while the words are counted.
Package: edman-cli
EDMAN(KEK IMSS SBRC/PF Experimental Data Management System)用のコマンドラインスクリプト。コマンドとしてインストールされます。Requirementpymongopython-dateutiljmespathedmanScripts Usageコマンドとしてインストールされます◯スクリプトで使用するクエリについて検索用クエリ検索の際はMongoDB(pymongo)のフィルタ形式で指定しますクエリ形式は “{フィルタ条件}”MongoDB参照:https://www.mongodb.com/docs/manual/reference/method/db.collection.find/pymongoのfind参照:https://pymongo.readthedocs.io/en/stable/api/pymongo/collection.html階層指定クエリemb(Embedded)形式でデータが入っている場合は下記のようなクエリで指定します構造上、embの時はクエリを使用しなければデータに到達できません例:{
    "collectionA":[
        {
            "collectionB":{"data1":"value1"}
        },
        {
            "collectionC:{
                "data2":"value2",
                "CollectionD":{
                    "data3":"value3",
                    "data4":"value4"
                }
            }
        }
    ]
}・data4を消したい場合“[‘collectionA’, ‘1’, ‘collectionC’, ‘collectionD’]”リストで消したい項目の直近の親までを指定するデータが複数あり、リストで囲まれていた場合は添字を数字で指定◯型変換について・DB内のすべてのコレクションが変換されます・DBにあってJSONファイルにないキーは無視されます・型一覧にない型を指定した時はstrに変換します・型一覧:[int,float,bool,str,datetime]・値がリストの時・双方どちらかがリストでない時は無視・JSON側が単一、DB側が複数の時は単一の型で全て変換するJSON:[‘str’]DB:[‘1’,’2’,’3’]・JSON側よりDB側が少ない時はJSON側は切り捨てJSON:[‘str’、’int’, ‘int’]DB:[‘1’,2]・JSON側よりDB側が多い時は、リストの最後の型で繰り返すJSON:[‘str’、’int’]DB:[‘1’,2,3,4,5]・型変換用のJSON例:{
    "コレクション名":{
        "キー": "変更する型",
        "キー2": "変更する型",
    },
    "コレクション名2":{
        "キー": ["変更する型","変更する型"],
    }
}以下のedmanのドキュメントも参照してくださいhttps://github.com/ryde/edman#type-conversion◯各コマンドed_entry: jsonファイルからMongoDBに投入ed_find: データを検索し、jsonに保存 検索用クエリを使用しますed_item_delete: データ内の項目を消す embの時、階層指定クエリを使用しますed_update: データの更新(更新用jsonファイルを用意)ed_delete: ドキュメントの削除(embは全削除、refは指定したobjectid以下を削除)ed_file_add:  該当データにファイルを添付する embの時、階層指定クエリを使用しますed_file_dl: 添付ファイルをダウンロード embの時、階層指定クエリを使用しますed_file_delete: 添付ファイルを削除 embの時、階層指定クエリを使用しますed_db_create: データベース及びユーザ作成操作支援用(MongoDBの管理者アカウントが必要)ed_db_destroy: データベース削除操作支援用(ユーザ削除はソース書き換えが必要)ed_structure_convert: DB内のembをrefへ変換、またはその逆を行いますed_pullout: コレクション内のembのキーを指定し、そのキーを含む階層を全てrefに変換しますed_assign_bson_type: DB内のRefドキュメントに型を適応しますオプションなど詳しくは:command_name -hCONFIG FILE各スクリプトからDBに接続するためには、DBの接続情報が書かれたファイルが必要です[DB]
# MongoDB default port 27017
port = 27017

# MongoDB server host
host = 127.0.0.1

user = user_name
password = user_password
database = database_name
options = ["authSource=authenticate_database_name"]
# LDAP USER SETTINGS
# options = ["authMechanism=PLAIN"]上記の内容のファイル、db.iniを作成し、任意の場所に保存してくださいDB内にユーザの情報がある場合はauthSourceのauthenticate_database_nameに
DBの認証ユーザ名を、
LDAPにユーザ情報がある場合は”authMechanism=PLAIN”を利用してください
(上記例はLDAPの場合)各スクリプトのヘルプを参考にして、引数にこのファイルのパスを指定してくださいInstallpip install:pip install edman_cliLicenceMITPyPI Projecthttps://pypi.org/project/edman_cli/Author[ryde](https://github.com/ryde)
Package: edman-web
KEK IMSS SBRC/PF Experimental Data Management System.sub-package of edman for web applications.RequirementpymongoFlaskand MongoDB.Modules Usage◯Note::TODOInstallpip install:pip install edman_webLicenceMITPyPI Projecthttps://pypi.org/project/edman_web/API Documenthttps://ryde.github.io/edman_web/Author[ryde](https://github.com/ryde)[yuskyamada](https://github.com/yuskyamada)
Package: edm-client
This simple client allows you to use Edge Defense Manager’s public API.RequirementsPython (tested on Python 2.7 and Python 3.6.5)RequestsInstallation:sudopipinstalledm-clientSource code is available onGitHub.Generating an API Token From Edge Defense ManagerAccess to the Edge Defense Manager API requires an API token for authentication. You generate the token in the EDM command line interface (CLI).The API token is associated with the user account under which it is generated. Any user can generate an EDM API token, except for the root user.To generate an EDM API token:Establish an SSH connection to EDM.Log in to the operating system CLI with your EDM credentials.To create the token, enteredm_apitoken_gen.The system responds with the new API token, for example:{"admin":"LMttPZ45FXnJT6IokVh6Px-otiKGDMkUdyQmJMWmWGz"}For later use, copy the token and then paste it to a text file.To log out of the CLI, enterexitTo View or delete a token, use one of the following commands.edm_apitoken_showedm_apitoken_deleteUsing the ClientImport the package:fromedmclient.edmimportEdgeDefenseManagerdev=EdgeDefenseManager(<host>,<apitoken>,api_version=<api_version,eg.'v1'>,raise_on_error=<True|False>)Managing DevicesAdd a device:dev.devices.add(host='aed_1.example.com',apiToken='WWPi7_',name='AED_1')View devices:dev.devices.show()dev.devices.show(id=1)Remove devices:dev.devices.remove(id=1)Update a device:dev.devices.update(id=1,host='aed_1.example.com',apiToken='WWPi7_',name='AED_1')Partially update a device:dev.devices.update(id=1,name='NEW_AED_1')dev.devices.update(id=1,apiToken='sdf79_kjI')Viewing AlertsView threats:dev.alerts.threats.show(start='2018-09-08T00:00:00Z')View DDoS alerts:dev.alerts.ddos.show(start='2018-09-08T00:00:00Z')View DDoS counts:dev.alerts.ddos.count.show(start='2018-09-08T00:00:00Z')Viewing TrafficView traffic:dev.traffic.edge.show(start='2018-09-08T00:00:00Z')Viewing Contextual Threat Intelligence (CTI)View CTI data:dev.cti.insights.show(indicatorValue='1.2.3.4')Configuring CTIView the CTI configuration:dev.configuration.cti.show()Add or Update the CTI configuration:dev.configuration.cti.update(cti_token='ajfdgFJGFGmh27hnbv')Running Unit TestsIfnoseis not installed, then run:pip3installnoseRun the following command from the package directory:nosetests
Package: edmunds-fw
# Edmunds[![CircleCI](https://circleci.com/gh/LowieHuyghe/edmunds.svg?style=svg)](https://circleci.com/gh/LowieHuyghe/edmunds)
[![Code Health](https://landscape.io/github/LowieHuyghe/edmunds/master/landscape.svg?style=flat)](https://landscape.io/github/LowieHuyghe/edmunds/master)
[![Code Climate](https://codeclimate.com/github/LowieHuyghe/edmunds/badges/gpa.svg)](https://codeclimate.com/github/LowieHuyghe/edmunds)
[![codecov](https://codecov.io/gh/LowieHuyghe/edmunds/branch/master/graph/badge.svg)](https://codecov.io/gh/LowieHuyghe/edmunds)
[![Updates](https://pyup.io/repos/github/LowieHuyghe/edmunds/shield.svg)](https://pyup.io/repos/github/LowieHuyghe/edmunds/)Edmunds is a Python framework for building web applications
with a firm base to start from. Edmunds takes away the pain of
bootstrap code so you can kickoff with the things that really
matter.## DocumentationSee: [https://lowiehuyghe.github.io/edmunds/](https://lowiehuyghe.github.io/edmunds/)
Package: edna2
EDNA2The EDNA2 project is a complete rewrite of the EDNA project.
For more info about the EDNA project seehttp://www.edna-site.org.
The version of ENDA used at the ESRF is:https://github.com/olofsvensson/edna-mx.The EDNA2 project tries to keep the 'spirit' of the EDNA project and at the
same time make the framework lightweight. These are the main differences with the EDNA project:Not compatible with python 2.7 - requires python 3No data modelling frameworkData persisted as json instead of XMLTasks instead of pluginsLogging based on Python loggingPython unit testsThese are the main features retained in the EDNA2 project:Asynchronous execution of tasksTask configuration based on sitesHierarchical working directory structure handled by the framework.Wherever possible a link is provided in the EDNA2 source code to the
corresponding EDNA code.InstallationThe EDNA2 project provides a setup.py file for installation.DocumentationThe documentation can be found athttps://edna2.readthedocs.io.Testing and code reviewTravis CI status: |Travis Status|Automatic code quality check:https://app.codacy.com/project/olofsvensson/edna2/dashboardContributeIssue Tracker:https://github.com/olofsvensson/edna2/issuesSource Code:https://github.com/olofsvensson/edna2SupportIf you are having issues, please let us know via the issue tracker.LicenseThe source code ofedna2is licensed under the MIT license.
See theLICENSE <https://github.com/olofsvensson/edna2/blob/master/LICENSE>_
andcopyright <https://github.com/olofsvensson/edna2/blob/master/copyright>_
files for details... |Travis Status| image::https://api.travis-ci.com/olofsvensson/edna2.svg?branch=master:target:https://app.travis-ci.com/olofsvensson/edna2?branch=master
Package: edn-configs
EDN CONFThis small library is built onhttps://pypi.org/project/edn-format/It gives a trivial clojure interpreter (Only for math
operators). Morever, it is equiped with a namespaced keywords
resolution methods, which will find and import the specific Python
namespace.
Finally, it gives some trivial reader macro for calling, and
partialing functions.Installationpip install edn_conf
Package: ednevnik
e-Dnevnik APIKinda slow (avarage 3 seconds) ednevnik api for getting user information.Requirementsseleniumchromewebdriver (needs to be installed via following linkhttps://chromedriver.chromium.org/downloads[needs to be the same version as chrome installed on your computer])Description of functionsauthfunction returns if given username and password are correct.gradefunction returns which class a given user is.nameSurnamefunction returns a name and surname of given user in a form of list.userNumberfunction returns ordinal number of a user.getClassYearfunction returns current class year.getSchoolfunction returns users current school.userInfofunction returns all info of a given user. (output is given in a list in the following order: [name, surname, grade, userNumber, year, school] and every element is a string )Example Code 1importednevnikusername="jeremy.clarkson@skole.hr"password="76ghBI7g"path="C:\Users\James\chromedriver.exe"#path is your personal path where webdriver is located on your PCdnevnik=ednevnik.api(username,password,path)userClass=dnevnik.grade()print(userClass)Example Code 2importednevnikdnevnik=ednevnik.api("james.may@skole.hr","09OIjs65","C:\Users\James\Programs\chromedriver.exe")authentication=dnevnik.auth()ifauthentication:print('User is valid.')else:print("User info is incorrect or doesn't exist.")Example Code 3importednevnikusername="richard.hammond@skole.hr"password="9865Y7jH"path="C:\Users\Richard\Modules\chromedriver.exe"#path is your personal path where webdriver is located on your PCdnevnik=ednevnik.api(username,password,path)userInformation=dnevnik.userInfo()print(userInformation)
Package: edn-format
edn_formatImplements theEDN formatin Python.All features of EDN are implemented, including custom tagged elements.Installationpip install edn_formatUsage>>>importedn_format>>>edn_format.dumps({1,2,3})'#{1 2 3}'>>>edn_format.loads("[1 true nil]")[1, True, None]>>>edn_format.loads_all("1 2 3 4")[1, 2, 3, 4]In general,edn_format.loads(edn_format.dumps(obj)) == obj. If this is
false, it may be a bug.Seetests.pyfor full details.ContributorsSpecial thanks to the following contributors for making this library
usable:@bfontaine@marianoguerra@bitemyapp@jashugan@exilefFAQWhy immutable list & dict?IIRC, it was related tohttps://github.com/edn-format/edn#rationale:edn will yield distinct object identities when read, unless a reader implementation goes out of its way to make such a promise. Thusthe resulting values should be considered immutable, and a reader implementation should yield values that ensure this, to the extent possible.