Skip to content
Snippets Groups Projects
Commit 7c09c4de authored by Timm Fitschen's avatar Timm Fitschen
Browse files

Merge branch 'f-deprecate-yamlapi' into 'dev'

F deprecate yamlapi

See merge request !25
parents 5ce0a107 1787f941
No related branches found
No related tags found
2 merge requests!33MAINT: change arguments of create_user,!25F deprecate yamlapi
Pipeline #13779 passed
......@@ -22,7 +22,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Deprecated ###
* `id_query(ids)` in apiutils
* `id_query(ids)` in apiutils (to be removed with >=0.5.4)
* The whole yamlapi with the following functions (to be removed with >=0.5.4):
* `append_sublist`
* `kv_to_xml`
* `dict_to_xml`
* `yaml_to_xml`
* `process`
* `yaml_file_to_xml`
* `insert_yaml_file`
### Removed ###
......
......@@ -22,7 +22,7 @@
# ** end header
#
"""YAML interface for the database (caosdb)"""
"""!!! Deprecated !!! YAML interface for the database (caosdb)"""
import yaml
from lxml import etree
......@@ -31,9 +31,14 @@ import re
import caosdb
import caosdb.common.utils as utils
from caosdb.connection.connection import get_connection
import warnings
def append_sublist(v, newel, def_entity_type):
warnings.warn("""
This function is deprecated and will be removed with the next release.
Please use caosdb-advanced-user-tools/models/data_model.py for a
similar functionality.""", DeprecationWarning)
if v is None:
return
for i in v:
......@@ -46,6 +51,10 @@ def append_sublist(v, newel, def_entity_type):
def kv_to_xml(k, v):
warnings.warn("""
This function is deprecated and will be removed with the next release.
Please use caosdb-advanced-user-tools/models/data_model.py for a
similar functionality.""", DeprecationWarning)
newel = Element(k)
# code.interact(local=locals())
if isinstance(v, list): # Top level loop
......@@ -69,10 +78,18 @@ def dict_to_xml(d):
d: The dictionary (possibly loaded from yaml)
to convert to caosdb-xml.
"""
warnings.warn("""
This function is deprecated and will be removed with the next release.
Please use caosdb-advanced-user-tools/models/data_model.py for a
similar functionality.""", DeprecationWarning)
return kv_to_xml("Entities", d)
def yaml_to_xml(yamlstr):
warnings.warn("""
This function is deprecated and will be removed with the next release.
Please use caosdb-advanced-user-tools/models/data_model.py for a
similar functionality.""", DeprecationWarning)
"""Load a yaml document from yamlstr and converts it to XML.
Parameters
......@@ -86,6 +103,10 @@ def yaml_to_xml(yamlstr):
def process(text):
"""Do some replacements on the original file to obtain valid yaml."""
warnings.warn("""
This function is deprecated and will be removed with the next release.
Please use caosdb-advanced-user-tools/models/data_model.py for a
similar functionality.""", DeprecationWarning)
processed = re.sub(
"^(\\s*)-\\s*\\{?(.*)\\}?\\s*$",
"\\1- {\\2}",
......@@ -98,6 +119,10 @@ def process(text):
def yaml_file_to_xml(yamlfilename):
warnings.warn("""
This function is deprecated and will be removed with the next release.
Please use caosdb-advanced-user-tools/models/data_model.py for a
similar functionality.""", DeprecationWarning)
with open(yamlfilename, "r") as f:
return yaml_to_xml(process(f.read()))
......@@ -108,6 +133,10 @@ def insert_yaml_file(yamlfilename, simulate=False):
Set 'simulate' to True if you don't actually want to insert the xml,
but only receive what would be sent.
"""
warnings.warn("""
This function is deprecated and will be removed with the next release.
Please use caosdb-advanced-user-tools/models/data_model.py for a
similar functionality.""", DeprecationWarning)
con = get_connection()
prs = etree.XMLParser(remove_blank_text=True)
sent_xml = etree.tostring(
......
# -*- coding: utf-8 -*-
#
# ** header v3.0
# This file is a part of the CaosDB Project.
#
# Copyright (C) 2021 IndiScale GmbH <info@indiscale.com>
# Copyright (C) 2021 Alexander Kreft <akreft@trineo.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# ** end header
#
import os
import warnings
import tempfile
from caosdb.yamlapi import (append_sublist, kv_to_xml,
dict_to_xml, yaml_to_xml,
process, yaml_file_to_xml)
with warnings.catch_warnings(record=True) as w:
# Cause all warnings to always be triggered.
warnings.simplefilter("always")
append_sublist(None, None, None)
assert issubclass(w[-1].category, DeprecationWarning)
assert "This function is deprecated" in str(w[-1].message)
with warnings.catch_warnings(record=True) as w:
# Cause all warnings to always be triggered.
warnings.simplefilter("always")
kv_to_xml("None", "None")
assert len(w) == 1
assert issubclass(w[-1].category, DeprecationWarning)
assert "This function is deprecated" in str(w[-1].message)
with warnings.catch_warnings(record=True) as w:
# Cause all warnings to always be triggered.
warnings.simplefilter("always")
dict_to_xml(None)
assert issubclass(w[-1].category, DeprecationWarning)
assert "This function is deprecated" in str(w[-1].message)
with warnings.catch_warnings(record=True) as w:
# Cause all warnings to always be triggered.
warnings.simplefilter("always")
yaml_to_xml("None")
assert issubclass(w[-1].category, DeprecationWarning)
assert "This function is deprecated" in str(w[-1].message)
with warnings.catch_warnings(record=True) as w:
# Cause all warnings to always be triggered.
warnings.simplefilter("always")
process("None")
assert issubclass(w[-1].category, DeprecationWarning)
assert "This function is deprecated" in str(w[-1].message)
with warnings.catch_warnings(record=True) as w:
# Cause all warnings to always be triggered.
warnings.simplefilter("always")
with tempfile.TemporaryDirectory() as tmpdirname:
tmpfile = os.path.join(tmpdirname, 'yamlfile')
with open(tmpfile, 'w') as tf:
tf.write("")
yaml_file_to_xml(tmpfile)
assert issubclass(w[-1].category, DeprecationWarning)
assert "This function is deprecated" in str(w[-1].message)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment