#######################################################################################
# Copyright ETSI Contributors and Others.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################################################################
appdirs==1.4.4
    # via openstacksdk
argcomplete==2.0.0
    # via yq
async-generator==1.10
    # via
    #   trio
    #   trio-websocket
attrs==21.4.0
    # via
    #   cmd2
    #   outcome
    #   trio
autopage==0.5.1
    # via cliff
bcrypt==3.2.2
    # via paramiko
bitarray==2.5.1
    # via
    #   -r requirements.in
    #   pyangbind
blessings==1.6
    # via charm-tools
certifi==2022.6.15
    # via
    #   requests
    #   urllib3
cffi==1.15.0
    # via
    #   bcrypt
    #   cryptography
    #   pynacl
charm-tools==2.8.3
    # via -r requirements.in
charset-normalizer==2.0.12
    # via requests
cheetah3==3.2.6.post1
    # via charm-tools
cliff==3.10.1
    # via
    #   osc-lib
    #   python-openstackclient
cmd2==2.4.1
    # via cliff
colander==1.7.0
    # via charm-tools
coverage==6.4.1
    # via robotframework-jsonlibrary
cryptography==37.0.2
    # via
    #   openstacksdk
    #   paramiko
    #   pyopenssl
    #   secretstorage
    #   urllib3
debtcollector==2.5.0
    # via
    #   oslo-config
    #   oslo-utils
    #   python-keystoneclient
decorator==5.1.1
    # via
    #   dogpile-cache
    #   jsonpath-ng
    #   jsonpath-rw
    #   openstacksdk
dict2colander==0.2
    # via charm-tools
distlib==0.3.4
    # via virtualenv
distro==1.7.0
    # via lazr-restfulclient
dogpile-cache==1.1.6
    # via openstacksdk
enum34==1.1.10
    # via pyangbind
filelock==3.7.1
    # via virtualenv
h11==0.13.0
    # via wsproto
haikunator==2.1.0
    # via -r requirements.in
httplib2==0.20.4
    # via
    #   launchpadlib
    #   lazr-restfulclient
idna==3.3
    # via
    #   requests
    #   trio
    #   urllib3
iso8601==1.0.2
    # via
    #   colander
    #   keystoneauth1
    #   openstacksdk
    #   oslo-utils
    #   python-novaclient
    #   python-openstackclient
jmespath==1.0.1
    # via openstacksdk
jsonpatch==1.32
    # via openstacksdk
jsonpath-ng==1.5.3
    # via robotframework-jsonlibrary
jsonpath-rw==1.4.0
    # via jsonpath-rw-ext
jsonpath-rw-ext==1.2.2
    # via robotframework-jsonvalidator
jsonpointer==2.3
    # via jsonpatch
jsonschema==2.5.1
    # via
    #   charm-tools
    #   robotframework-jsonvalidator
jujubundlelib==0.5.7
    # via
    #   charm-tools
    #   theblues
keyring==20.0.1
    # via
    #   charm-tools
    #   launchpadlib
keystoneauth1==4.6.0
    # via
    #   openstacksdk
    #   osc-lib
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
launchpadlib==1.10.16
    # via charm-tools
lazr-restfulclient==0.14.4
    # via launchpadlib
lazr-uri==1.0.6
    # via
    #   launchpadlib
    #   wadllib
libcharmstore==0.0.9
    # via charm-tools
lxml==4.9.0
    # via
    #   pyang
    #   pyangbind
macaroonbakery==1.3.1
    # via theblues
msgpack==1.0.4
    # via oslo-serialization
munch==2.5.0
    # via openstacksdk
netaddr==0.8.0
    # via
    #   oslo-config
    #   oslo-utils
netifaces==0.11.0
    # via
    #   openstacksdk
    #   oslo-utils
oauthlib==3.2.0
    # via lazr-restfulclient
objectpath==0.6.1
    # via robotframework-jsonvalidator
openstacksdk==0.99.0
    # via
    #   osc-lib
    #   python-openstackclient
os-service-types==1.7.0
    # via
    #   keystoneauth1
    #   openstacksdk
osc-lib==2.6.0
    # via python-openstackclient
oslo-config==8.8.0
    # via python-keystoneclient
oslo-i18n==5.1.0
    # via
    #   osc-lib
    #   oslo-config
    #   oslo-utils
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
    #   python-openstackclient
oslo-serialization==4.3.0
    # via
    #   python-keystoneclient
    #   python-novaclient
oslo-utils==6.0.0
    # via
    #   osc-lib
    #   oslo-serialization
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
    #   python-openstackclient
otherstuf==1.1.0
    # via charm-tools
outcome==1.2.0
    # via trio
packaging==21.3
    # via
    #   oslo-utils
    #   python-keystoneclient
paramiko==2.11.0
    # via
    #   robotframework-sshlibrary
    #   scp
parse==1.19.0
    # via stuf
path==16.4.0
    # via path-py
path-py==12.5.0
    # via charm-tools
pathspec==0.3.4
    # via charm-tools
pbr==5.9.0
    # via
    #   cliff
    #   jsonpath-rw-ext
    #   keystoneauth1
    #   openstacksdk
    #   os-service-types
    #   osc-lib
    #   oslo-i18n
    #   oslo-serialization
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
    #   python-openstackclient
    #   stevedore
platformdirs==2.5.2
    # via virtualenv
ply==3.11
    # via
    #   jsonpath-ng
    #   jsonpath-rw
prettytable==3.3.0
    # via
    #   cliff
    #   python-cinderclient
    #   python-novaclient
protobuf==3.20.1
    # via macaroonbakery
pyang==2.5.3
    # via pyangbind
pyangbind==0.8.1
    # via -r requirements.in
pycparser==2.21
    # via cffi
pyjsonselect==0.2.2
    # via robotframework-jsonvalidator
pymacaroons==0.13.0
    # via macaroonbakery
pynacl==1.5.0
    # via
    #   macaroonbakery
    #   paramiko
    #   pymacaroons
pyopenssl==22.0.0
    # via urllib3
pyparsing==3.0.9
    # via
    #   cliff
    #   httplib2
    #   oslo-utils
    #   packaging
pyperclip==1.8.2
    # via cmd2
pyrfc3339==1.1
    # via macaroonbakery
pysocks==1.7.1
    # via urllib3
python-cinderclient==8.3.0
    # via python-openstackclient
python-keystoneclient==4.5.0
    # via python-openstackclient
python-novaclient==18.0.0
    # via python-openstackclient
python-openstackclient==5.8.0
    # via -r requirements.in
pytz==2022.1
    # via
    #   oslo-serialization
    #   oslo-utils
    #   pyrfc3339
pyyaml==5.4.1
    # via
    #   -r requirements.in
    #   charm-tools
    #   cliff
    #   jujubundlelib
    #   openstacksdk
    #   oslo-config
    #   robotframework-yamllibrary
    #   yq
regex==2022.6.2
    # via
    #   -r requirements.in
    #   pyangbind
requests==2.28.0
    # via
    #   -r requirements.in
    #   charm-tools
    #   keystoneauth1
    #   macaroonbakery
    #   oslo-config
    #   python-cinderclient
    #   python-keystoneclient
    #   robotframework-requests
    #   theblues
requestsexceptions==1.4.0
    # via openstacksdk
requirements-parser==0.5.0
    # via charm-tools
rfc3986==2.0.0
    # via oslo-config
robotframework==5.0.1
    # via
    #   -r requirements.in
    #   robotframework-jsonlibrary
    #   robotframework-jsonvalidator
    #   robotframework-requests
    #   robotframework-seleniumlibrary
    #   robotframework-sshlibrary
robotframework-jsonlibrary==0.4.1
    # via -r requirements.in
robotframework-jsonvalidator==2.0.0
    # via -r requirements.in
robotframework-pythonlibcore==3.0.0
    # via robotframework-seleniumlibrary
robotframework-requests==0.9.3
    # via -r requirements.in
robotframework-seleniumlibrary==6.0.0
    # via -r requirements.in
robotframework-sshlibrary==3.8.0
    # via -r requirements.in
robotframework-yamllibrary==0.2.8
    # via -r requirements.in
ruamel-yaml==0.15.100
    # via charm-tools
scp==0.14.4
    # via robotframework-sshlibrary
secretstorage==2.3.1
    # via
    #   charm-tools
    #   keyring
selenium==4.3.0
    # via robotframework-seleniumlibrary
simplejson==3.17.6
    # via
    #   osc-lib
    #   python-cinderclient
six==1.16.0
    # via
    #   jsonpath-ng
    #   jsonpath-rw
    #   keystoneauth1
    #   launchpadlib
    #   lazr-restfulclient
    #   macaroonbakery
    #   munch
    #   paramiko
    #   pyangbind
    #   pymacaroons
    #   python-keystoneclient
    #   virtualenv
sniffio==1.2.0
    # via trio
sortedcontainers==2.4.0
    # via trio
stevedore==3.5.0
    # via
    #   cliff
    #   dogpile-cache
    #   keystoneauth1
    #   osc-lib
    #   oslo-config
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
    #   python-openstackclient
stuf==0.9.16
    # via otherstuf
theblues==0.5.2
    # via libcharmstore
toml==0.10.2
    # via yq
translationstring==1.4
    # via colander
trio==0.21.0
    # via
    #   selenium
    #   trio-websocket
trio-websocket==0.9.2
    # via selenium
types-setuptools==57.4.17
    # via requirements-parser
urllib3[secure,socks]==1.26.9
    # via
    #   requests
    #   selenium
verboselogs==1.7
    # via -r requirements.in
vergit==1.0.2
    # via charm-tools
virtualenv==20.14.1
    # via charm-tools
wadllib==1.3.6
    # via lazr-restfulclient
wcwidth==0.2.5
    # via
    #   cmd2
    #   prettytable
wrapt==1.14.1
    # via debtcollector
wsproto==1.1.0
    # via trio-websocket
xmltodict==0.13.0
    # via yq
yq==2.14.0
    # via -r requirements.in

# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools
