Hello community,

here is the log from the commit of package python-opentelemetry-api for 
openSUSE:Factory checked in at 2020-04-16 23:01:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-opentelemetry-api (Old)
 and      /work/SRC/openSUSE:Factory/.python-opentelemetry-api.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-opentelemetry-api"

Thu Apr 16 23:01:37 2020 rev:3 rq:794251 version:0.6b0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-opentelemetry-api/python-opentelemetry-api.changes
        2020-03-27 22:01:57.262955284 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-opentelemetry-api.new.2738/python-opentelemetry-api.changes
      2020-04-16 23:02:05.947620679 +0200
@@ -1,0 +2,9 @@
+Wed Apr 15 14:03:21 UTC 2020 - [email protected]
+
+- version update to 0.6b0
+  * Add support for lazy events and links (#474)
+  * Metrics API no longer uses LabelSet (#527)
+  * Adding is_remote flag to SpanContext, indicating when a span is remote 
(#516)
+  * Allow digit as first char in vendor specific trace state key (#511)
+
+-------------------------------------------------------------------

Old:
----
  opentelemetry-api-0.5b0.tar.gz

New:
----
  opentelemetry-api-0.6b0.tar.gz
  tests.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-opentelemetry-api.spec ++++++
--- /var/tmp/diff_new_pack.LWdjDs/_old  2020-04-16 23:02:07.887622141 +0200
+++ /var/tmp/diff_new_pack.LWdjDs/_new  2020-04-16 23:02:07.887622141 +0200
@@ -19,25 +19,31 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-opentelemetry-api
-Version:        0.5b0
+Version:        0.6b0
 Release:        0
 Summary:        OpenTelemetry Python API
 License:        Apache-2.0
 URL:            
https://github.com/open-telemetry/opentelemetry-python/tree/master/opentelemetry-api
 Source:         
https://files.pythonhosted.org/packages/source/o/opentelemetry-api/opentelemetry-api-%{version}.tar.gz
+# https://github.com/open-telemetry/opentelemetry-python/pull/557
+Source98:       tests.tar.bz2
 # https://github.com/open-telemetry/opentelemetry-python/issues/473
 Source99:       
https://raw.githubusercontent.com/open-telemetry/opentelemetry-python/master/LICENSE
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 BuildArch:      noarch
+Requires:       python-setuptools
+# SECTION test requirements
+BuildRequires:  %{python_module pytest}
+# /SECTION
 %python_subpackages
 
 %description
 OpenTelemetry Python API
 
 %prep
-%setup -q -n opentelemetry-api-%{version}
+%setup -q -n opentelemetry-api-%{version} -a98
 cp %{SOURCE99} .
 
 %build
@@ -47,6 +53,12 @@
 %python_install
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
+%check
+# test_environment_variables and test_getattr erroring,
+# let us see whether they got fixed via github PR referenced
+# above (in next version)
+%pytest -k 'not (test_getattr or test_environment_variables)'
+
 %files %{python_files}
 %doc README.rst
 %license LICENSE

++++++ opentelemetry-api-0.5b0.tar.gz -> opentelemetry-api-0.6b0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opentelemetry-api-0.5b0/PKG-INFO 
new/opentelemetry-api-0.6b0/PKG-INFO
--- old/opentelemetry-api-0.5b0/PKG-INFO        2020-03-17 00:13:34.000000000 
+0100
+++ new/opentelemetry-api-0.6b0/PKG-INFO        2020-03-31 07:23:45.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: opentelemetry-api
-Version: 0.5b0
+Version: 0.6b0
 Summary: OpenTelemetry Python API
 Home-page: 
https://github.com/open-telemetry/opentelemetry-python/tree/master/opentelemetry-api
 Author: OpenTelemetry Authors
@@ -27,7 +27,7 @@
         * `OpenTelemetry Project <https://opentelemetry.io/>`_
         
 Platform: UNKNOWN
-Classifier: Development Status :: 3 - Alpha
+Classifier: Development Status :: 4 - Beta
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: Apache Software License
 Classifier: Programming Language :: Python
@@ -36,4 +36,5 @@
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
 Description-Content-Type: text/x-rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/opentelemetry-api-0.5b0/setup.py 
new/opentelemetry-api-0.6b0/setup.py
--- old/opentelemetry-api-0.5b0/setup.py        2020-03-17 00:12:29.000000000 
+0100
+++ new/opentelemetry-api-0.6b0/setup.py        2020-03-31 07:22:45.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@
     author="OpenTelemetry Authors",
     author_email="[email protected]",
     classifiers=[
-        "Development Status :: 3 - Alpha",
+        "Development Status :: 4 - Beta",
         "Intended Audience :: Developers",
         "License :: OSI Approved :: Apache Software License",
         "Programming Language :: Python",
@@ -37,6 +37,7 @@
         "Programming Language :: Python :: 3.5",
         "Programming Language :: Python :: 3.6",
         "Programming Language :: Python :: 3.7",
+        "Programming Language :: Python :: 3.8",
     ],
     description="OpenTelemetry Python API",
     include_package_data=True,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/configuration/__init__.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/configuration/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/configuration/__init__.py     
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/configuration/__init__.py     
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/context/__init__.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/context/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/context/__init__.py   
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/context/__init__.py   
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
 # limitations under the License.
 
 import logging
+import threading
 import typing
 from functools import wraps
 from os import environ
@@ -24,7 +25,7 @@
 
 logger = logging.getLogger(__name__)
 _RUNTIME_CONTEXT = None  # type: typing.Optional[RuntimeContext]
-
+_RUNTIME_CONTEXT_LOCK = threading.Lock()
 
 _F = typing.TypeVar("_F", bound=typing.Callable[..., typing.Any])
 
@@ -42,26 +43,30 @@
         **kwargs: typing.Dict[typing.Any, typing.Any]
     ) -> typing.Optional[typing.Any]:
         global _RUNTIME_CONTEXT  # pylint: disable=global-statement
-        if _RUNTIME_CONTEXT is None:
-            # FIXME use a better implementation of a configuration manager to 
avoid having
-            # to get configuration values straight from environment variables
-            if version_info < (3, 5):
-                # contextvars are not supported in 3.4, use thread-local 
storage
-                default_context = "threadlocal_context"
-            else:
-                default_context = "contextvars_context"
-
-            configured_context = environ.get(
-                "OPENTELEMETRY_CONTEXT", default_context
-            )  # type: str
-            try:
-                _RUNTIME_CONTEXT = next(
-                    iter_entry_points(
-                        "opentelemetry_context", configured_context
+
+        with _RUNTIME_CONTEXT_LOCK:
+            if _RUNTIME_CONTEXT is None:
+                # FIXME use a better implementation of a configuration manager 
to avoid having
+                # to get configuration values straight from environment 
variables
+                if version_info < (3, 5):
+                    # contextvars are not supported in 3.4, use thread-local 
storage
+                    default_context = "threadlocal_context"
+                else:
+                    default_context = "contextvars_context"
+
+                configured_context = environ.get(
+                    "OPENTELEMETRY_CONTEXT", default_context
+                )  # type: str
+                try:
+                    _RUNTIME_CONTEXT = next(
+                        iter_entry_points(
+                            "opentelemetry_context", configured_context
+                        )
+                    ).load()()
+                except Exception:  # pylint: disable=broad-except
+                    logger.error(
+                        "Failed to load context: %s", configured_context
                     )
-                ).load()()
-            except Exception:  # pylint: disable=broad-except
-                logger.error("Failed to load context: %s", configured_context)
         return func(*args, **kwargs)  # type: ignore
 
     return wrapper  # type:ignore
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/context/aiocontextvarsfix.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/context/aiocontextvarsfix.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/context/aiocontextvarsfix.py  
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/context/aiocontextvarsfix.py  
2020-03-31 07:22:45.000000000 +0200
@@ -1,5 +1,5 @@
 # type: ignore
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/context/context.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/context/context.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/context/context.py    
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/context/context.py    
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/context/contextvars_context.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/context/contextvars_context.py
--- 
old/opentelemetry-api-0.5b0/src/opentelemetry/context/contextvars_context.py    
    2020-03-17 00:12:29.000000000 +0100
+++ 
new/opentelemetry-api-0.6b0/src/opentelemetry/context/contextvars_context.py    
    2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/context/threadlocal_context.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/context/threadlocal_context.py
--- 
old/opentelemetry-api-0.5b0/src/opentelemetry/context/threadlocal_context.py    
    2020-03-17 00:12:29.000000000 +0100
+++ 
new/opentelemetry-api-0.6b0/src/opentelemetry/context/threadlocal_context.py    
    2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/correlationcontext/__init__.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/correlationcontext/__init__.py
--- 
old/opentelemetry-api-0.5b0/src/opentelemetry/correlationcontext/__init__.py    
    2020-03-17 00:12:29.000000000 +0100
+++ 
new/opentelemetry-api-0.6b0/src/opentelemetry/correlationcontext/__init__.py    
    2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,7 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import abc
 import typing
 
 from opentelemetry.context import get_value, set_value
@@ -24,7 +23,7 @@
 def get_correlations(
     context: typing.Optional[Context] = None,
 ) -> typing.Dict[str, object]:
-    """ Returns the name/value pairs in the CorrelationContext
+    """Returns the name/value pairs in the CorrelationContext
 
     Args:
         context: The Context to use. If not set, uses current Context
@@ -41,7 +40,8 @@
 def get_correlation(
     name: str, context: typing.Optional[Context] = None
 ) -> typing.Optional[object]:
-    """ Provides access to the value for a name/value pair in the 
CorrelationContext
+    """Provides access to the value for a name/value pair in the
+    CorrelationContext
 
     Args:
         name: The name of the value to retrieve
@@ -76,6 +76,7 @@
     name: str, context: typing.Optional[Context] = None
 ) -> Context:
     """Removes a value from the CorrelationContext
+
     Args:
         name: The name of the value to remove
         context: The Context to use. If not set, uses current Context
@@ -91,6 +92,7 @@
 
 def clear_correlations(context: typing.Optional[Context] = None) -> Context:
     """Removes all values from the CorrelationContext
+
     Args:
         context: The Context to use. If not set, uses current Context
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/correlationcontext/propagation/__init__.py
 
new/opentelemetry-api-0.6b0/src/opentelemetry/correlationcontext/propagation/__init__.py
--- 
old/opentelemetry-api-0.5b0/src/opentelemetry/correlationcontext/propagation/__init__.py
    2020-03-17 00:12:29.000000000 +0100
+++ 
new/opentelemetry-api-0.6b0/src/opentelemetry/correlationcontext/propagation/__init__.py
    2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,7 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
-import re
 import typing
 import urllib.parse
 
@@ -36,9 +35,10 @@
         carrier: httptextformat.HTTPTextFormatT,
         context: typing.Optional[Context] = None,
     ) -> Context:
-        """ Extract CorrelationContext from the carrier.
+        """Extract CorrelationContext from the carrier.
 
-        See 
`opentelemetry.trace.propagation.httptextformat.HTTPTextFormat.extract`
+        See
+        `opentelemetry.trace.propagation.httptextformat.HTTPTextFormat.extract`
         """
 
         if context is None:
@@ -79,7 +79,8 @@
     ) -> None:
         """Injects CorrelationContext into the carrier.
 
-        See 
`opentelemetry.trace.propagation.httptextformat.HTTPTextFormat.inject`
+        See
+        `opentelemetry.trace.propagation.httptextformat.HTTPTextFormat.inject`
         """
         correlations = correlationcontext.get_correlations(context=context)
         if not correlations:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/logs/__init__.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/logs/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/logs/__init__.py      
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/logs/__init__.py      
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/metrics/__init__.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/metrics/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/metrics/__init__.py   
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/metrics/__init__.py   
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -60,6 +60,9 @@
             value: The value to record to the bound metric instrument.
         """
 
+    def release(self) -> None:
+        """No-op implementation of release."""
+
 
 class BoundCounter:
     def add(self, value: ValueT) -> None:
@@ -79,25 +82,6 @@
         """
 
 
-class LabelSet(abc.ABC):
-    """A canonicalized set of labels useful for preaggregation
-
-    Re-usable LabelSet objects provide a potential optimization for scenarios
-    where bound metric instruments might not be effective. For example, if the
-    LabelSet will be re-used but only used once per metrics, bound metric
-    instruments do not offer any optimization. It may best to pre-compute a
-    canonicalized LabelSet once and re-use it with the direct calling
-    convention. LabelSets are immutable and should be opaque in implementation.
-    """
-
-
-class DefaultLabelSet(LabelSet):
-    """The default LabelSet.
-
-    Used when no LabelSet implementation is available.
-    """
-
-
 class Metric(abc.ABC):
     """Base class for various types of metrics.
 
@@ -106,7 +90,7 @@
     """
 
     @abc.abstractmethod
-    def bind(self, label_set: LabelSet) -> "object":
+    def bind(self, labels: Dict[str, str]) -> "object":
         """Gets a bound metric instrument.
 
         Bound metric instruments are useful to reduce the cost of repeatedly
@@ -118,51 +102,51 @@
         provided are permitted.
 
         Args:
-            label_set: `LabelSet` to associate with the bound instrument.
+            labels: Labels to associate with the bound instrument.
         """
 
 
 class DefaultMetric(Metric):
     """The default Metric used when no Metric implementation is available."""
 
-    def bind(self, label_set: LabelSet) -> "DefaultBoundInstrument":
+    def bind(self, labels: Dict[str, str]) -> "DefaultBoundInstrument":
         """Gets a `DefaultBoundInstrument`.
 
         Args:
-            label_set: `LabelSet` to associate with the bound instrument.
+            labels: Labels to associate with the bound instrument.
         """
         return DefaultBoundInstrument()
 
-    def add(self, value: ValueT, label_set: LabelSet) -> None:
+    def add(self, value: ValueT, labels: Dict[str, str]) -> None:
         """No-op implementation of `Counter` add.
 
         Args:
             value: The value to add to the counter metric.
-            label_set: `LabelSet` to associate with the bound instrument.
+            labels: Labels to associate with the bound instrument.
         """
 
-    def record(self, value: ValueT, label_set: LabelSet) -> None:
+    def record(self, value: ValueT, labels: Dict[str, str]) -> None:
         """No-op implementation of `Measure` record.
 
         Args:
             value: The value to record to this measure metric.
-            label_set: `LabelSet` to associate with the bound instrument.
+            labels: Labels to associate with the bound instrument.
         """
 
 
 class Counter(Metric):
     """A counter type metric that expresses the computation of a sum."""
 
-    def bind(self, label_set: LabelSet) -> "BoundCounter":
+    def bind(self, labels: Dict[str, str]) -> "BoundCounter":
         """Gets a `BoundCounter`."""
         return BoundCounter()
 
-    def add(self, value: ValueT, label_set: LabelSet) -> None:
+    def add(self, value: ValueT, labels: Dict[str, str]) -> None:
         """Increases the value of the counter by ``value``.
 
         Args:
             value: The value to add to the counter metric.
-            label_set: `LabelSet` to associate with the returned bound counter.
+            labels: Labels to associate with the bound instrument.
         """
 
 
@@ -172,16 +156,16 @@
     Measure metrics represent raw statistics that are recorded.
     """
 
-    def bind(self, label_set: LabelSet) -> "BoundMeasure":
+    def bind(self, labels: Dict[str, str]) -> "BoundMeasure":
         """Gets a `BoundMeasure`."""
         return BoundMeasure()
 
-    def record(self, value: ValueT, label_set: LabelSet) -> None:
+    def record(self, value: ValueT, labels: Dict[str, str]) -> None:
         """Records the ``value`` to the measure.
 
         Args:
             value: The value to record to this measure metric.
-            label_set: `LabelSet` to associate with the returned bound measure.
+            labels: Labels to associate with the bound instrument.
         """
 
 
@@ -196,24 +180,24 @@
     """
 
     @abc.abstractmethod
-    def observe(self, value: ValueT, label_set: LabelSet) -> None:
+    def observe(self, value: ValueT, labels: Dict[str, str]) -> None:
         """Captures ``value`` to the observer.
 
         Args:
             value: The value to capture to this observer metric.
-            label_set: `LabelSet` associated to ``value``.
+            labels: Labels associated to ``value``.
         """
 
 
 class DefaultObserver(Observer):
     """No-op implementation of ``Observer``."""
 
-    def observe(self, value: ValueT, label_set: LabelSet) -> None:
+    def observe(self, value: ValueT, labels: Dict[str, str]) -> None:
         """Captures ``value`` to the observer.
 
         Args:
             value: The value to capture to this observer metric.
-            label_set: `LabelSet` associated to ``value``.
+            labels: Labels associated to ``value``.
         """
 
 
@@ -283,20 +267,20 @@
     @abc.abstractmethod
     def record_batch(
         self,
-        label_set: LabelSet,
+        labels: Dict[str, str],
         record_tuples: Sequence[Tuple["Metric", ValueT]],
     ) -> None:
         """Atomically records a batch of `Metric` and value pairs.
 
         Allows the functionality of acting upon multiple metrics with a single
         API call. Implementations should find bound metric instruments that
-        match the key-value pairs in the labelset.
+        match the key-value pairs in the labels.
 
-        Args: label_set: The `LabelSet` associated with all measurements in the
-            batch. A measurement is a tuple, representing the `Metric` being
-            recorded and the corresponding value to record. record_tuples: A
-            sequence of pairs of `Metric` s and the corresponding value to
-            record for that metric.
+        Args:
+            labels: Labels associated with all measurements in the
+                batch.
+            record_tuples: A sequence of pairs of `Metric` s and the
+                corresponding value to record for that metric.
         """
 
     @abc.abstractmethod
@@ -351,13 +335,11 @@
         """
 
     @abc.abstractmethod
-    def get_label_set(self, labels: Dict[str, str]) -> "LabelSet":
-        """Gets a `LabelSet` with the given labels.
+    def unregister_observer(self, observer: "Observer") -> None:
+        """Unregisters an ``Observer`` metric instrument.
 
         Args:
-            labels: A dictionary representing label key to label value pairs.
-
-        Returns: A `LabelSet` object canonicalized using the given input.
+            observer: The observer to unregister.
         """
 
 
@@ -366,7 +348,7 @@
 
     def record_batch(
         self,
-        label_set: LabelSet,
+        labels: Dict[str, str],
         record_tuples: Sequence[Tuple["Metric", ValueT]],
     ) -> None:
         pass
@@ -396,9 +378,8 @@
     ) -> "Observer":
         return DefaultObserver()
 
-    def get_label_set(self, labels: Dict[str, str]) -> "LabelSet":
-        # pylint: disable=no-self-use
-        return DefaultLabelSet()
+    def unregister_observer(self, observer: "Observer") -> None:
+        pass
 
 
 _METER_PROVIDER = None
@@ -411,7 +392,7 @@
 ) -> "Meter":
     """Returns a `Meter` for use by the given instrumentation library.
     This function is a convenience wrapper for
-    opentelemetry.metrics.meter_provider().get_meter
+    opentelemetry.metrics.get_meter_provider().get_meter
     """
     return get_meter_provider().get_meter(
         instrumenting_module_name, stateful, instrumenting_library_version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/propagators/__init__.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/propagators/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/propagators/__init__.py       
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/propagators/__init__.py       
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/propagators/composite.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/propagators/composite.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/propagators/composite.py      
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/propagators/composite.py      
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/__init__.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/trace/__init__.py     
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/trace/__init__.py     
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -87,48 +87,59 @@
 ParentSpan = typing.Optional[typing.Union["Span", "SpanContext"]]
 
 
-class Link:
-    """A link to a `Span`."""
-
-    def __init__(
-        self, context: "SpanContext", attributes: types.Attributes = None
-    ) -> None:
+class LinkBase(abc.ABC):
+    def __init__(self, context: "SpanContext") -> None:
         self._context = context
-        if attributes is None:
-            self._attributes = {}  # type: types.Attributes
-        else:
-            self._attributes = attributes
 
     @property
     def context(self) -> "SpanContext":
         return self._context
 
     @property
+    @abc.abstractmethod
     def attributes(self) -> types.Attributes:
-        return self._attributes
+        pass
+
 
+class Link(LinkBase):
+    """A link to a `Span`.
 
-class Event:
-    """A text annotation with a set of attributes."""
+    Args:
+        context: `SpanContext` of the `Span` to link to.
+        attributes: Link's attributes.
+    """
 
     def __init__(
-        self, name: str, attributes: types.Attributes, timestamp: int
+        self, context: "SpanContext", attributes: types.Attributes = None,
     ) -> None:
-        self._name = name
+        super().__init__(context)
         self._attributes = attributes
-        self._timestamp = timestamp
-
-    @property
-    def name(self) -> str:
-        return self._name
 
     @property
     def attributes(self) -> types.Attributes:
         return self._attributes
 
+
+class LazyLink(LinkBase):
+    """A lazy link to a `Span`.
+
+    Args:
+        context: `SpanContext` of the `Span` to link to.
+        link_formatter: Callable object that returns the attributes of the
+            Link.
+    """
+
+    def __init__(
+        self,
+        context: "SpanContext",
+        link_formatter: types.AttributesFormatter,
+    ) -> None:
+        super().__init__(context)
+        self._link_formatter = link_formatter
+
     @property
-    def timestamp(self) -> int:
-        return self._timestamp
+    def attributes(self) -> types.Attributes:
+        return self._link_formatter()
 
 
 class SpanKind(enum.Enum):
@@ -206,10 +217,17 @@
         """
 
     @abc.abstractmethod
-    def add_lazy_event(self, event: Event) -> None:
+    def add_lazy_event(
+        self,
+        name: str,
+        event_formatter: types.AttributesFormatter,
+        timestamp: typing.Optional[int] = None,
+    ) -> None:
         """Adds an `Event`.
 
-        Adds an `Event` that has previously been created.
+        Adds a single `Event` with the name, an event formatter that calculates
+        the attributes lazily and, optionally, a timestamp. Implementations
+        should generate a timestamp if the `timestamp` argument is omitted.
         """
 
     @abc.abstractmethod
@@ -319,12 +337,14 @@
         span_id: This span's ID.
         trace_flags: Trace options to propagate.
         trace_state: Tracing-system-specific info to propagate.
+        is_remote: True if propagated from a remote parent.
     """
 
     def __init__(
         self,
         trace_id: int,
         span_id: int,
+        is_remote: bool,
         trace_flags: "TraceFlags" = DEFAULT_TRACE_OPTIONS,
         trace_state: "TraceState" = DEFAULT_TRACE_STATE,
     ) -> None:
@@ -336,13 +356,17 @@
         self.span_id = span_id
         self.trace_flags = trace_flags
         self.trace_state = trace_state
+        self.is_remote = is_remote
 
     def __repr__(self) -> str:
-        return "{}(trace_id={}, span_id={}, trace_state={!r})".format(
+        return (
+            "{}(trace_id={}, span_id={}, trace_state={!r}, is_remote={})"
+        ).format(
             type(self).__name__,
             format_trace_id(self.trace_id),
             format_span_id(self.span_id),
             self.trace_state,
+            self.is_remote,
         )
 
     def is_valid(self) -> bool:
@@ -389,7 +413,12 @@
     ) -> None:
         pass
 
-    def add_lazy_event(self, event: Event) -> None:
+    def add_lazy_event(
+        self,
+        name: str,
+        event_formatter: types.AttributesFormatter,
+        timestamp: typing.Optional[int] = None,
+    ) -> None:
         pass
 
     def update_name(self, name: str) -> None:
@@ -402,10 +431,11 @@
 INVALID_SPAN_ID = 0x0000000000000000
 INVALID_TRACE_ID = 0x00000000000000000000000000000000
 INVALID_SPAN_CONTEXT = SpanContext(
-    INVALID_TRACE_ID,
-    INVALID_SPAN_ID,
-    DEFAULT_TRACE_OPTIONS,
-    DEFAULT_TRACE_STATE,
+    trace_id=INVALID_TRACE_ID,
+    span_id=INVALID_SPAN_ID,
+    is_remote=False,
+    trace_flags=DEFAULT_TRACE_OPTIONS,
+    trace_state=DEFAULT_TRACE_STATE,
 )
 INVALID_SPAN = DefaultSpan(INVALID_SPAN_CONTEXT)
 
@@ -653,7 +683,7 @@
     """Returns a `Tracer` for use by the given instrumentation library.
 
     This function is a convenience wrapper for
-    opentelemetry.trace.tracer_provider().get_tracer
+    opentelemetry.trace.get_tracer_provider().get_tracer
     """
     return get_tracer_provider().get_tracer(
         instrumenting_module_name, instrumenting_library_version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/__init__.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/__init__.py 
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/__init__.py 
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/httptextformat.py
 
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/httptextformat.py
--- 
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/httptextformat.py
   2020-03-17 00:12:29.000000000 +0100
+++ 
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/httptextformat.py
   2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/tracecontexthttptextformat.py
 
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/tracecontexthttptextformat.py
--- 
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/propagation/tracecontexthttptextformat.py
       2020-03-17 00:12:29.000000000 +0100
+++ 
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/propagation/tracecontexthttptextformat.py
       2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -33,7 +33,7 @@
 
 _KEY_WITHOUT_VENDOR_FORMAT = r"[a-z][_0-9a-z\-\*\/]{0,255}"
 _KEY_WITH_VENDOR_FORMAT = (
-    r"[a-z][_0-9a-z\-\*\/]{0,240}@[a-z][_0-9a-z\-\*\/]{0,13}"
+    r"[a-z0-9][_0-9a-z\-\*\/]{0,240}@[a-z][_0-9a-z\-\*\/]{0,13}"
 )
 
 _KEY_FORMAT = _KEY_WITHOUT_VENDOR_FORMAT + "|" + _KEY_WITH_VENDOR_FORMAT
@@ -105,6 +105,7 @@
         span_context = trace.SpanContext(
             trace_id=int(trace_id, 16),
             span_id=int(span_id, 16),
+            is_remote=True,
             trace_flags=trace.TraceFlags(trace_flags),
             trace_state=tracestate,
         )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/sampling.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/sampling.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/trace/sampling.py     
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/trace/sampling.py     
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/trace/status.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/trace/status.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/trace/status.py       
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/trace/status.py       
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/util/__init__.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/util/__init__.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/util/__init__.py      
2020-03-17 00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/util/__init__.py      
2020-03-31 07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2020, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/util/types.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/util/types.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/util/types.py 2020-03-17 
00:12:29.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/util/types.py 2020-03-31 
07:22:45.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
 # limitations under the License.
 
 
-from typing import Dict, Optional, Sequence, Union
+from typing import Callable, Dict, Optional, Sequence, Union
 
 AttributeValue = Union[
     str,
@@ -26,3 +26,4 @@
     Sequence[float],
 ]
 Attributes = Optional[Dict[str, AttributeValue]]
+AttributesFormatter = Callable[[], Optional[Dict[str, AttributeValue]]]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry/util/version.py 
new/opentelemetry-api-0.6b0/src/opentelemetry/util/version.py
--- old/opentelemetry-api-0.5b0/src/opentelemetry/util/version.py       
2020-03-17 00:12:57.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry/util/version.py       
2020-03-31 07:23:16.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2019, OpenTelemetry Authors
+# Copyright The OpenTelemetry Authors
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,4 +12,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-__version__ = "0.5b0"
+__version__ = "0.6b0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/opentelemetry-api-0.5b0/src/opentelemetry_api.egg-info/PKG-INFO 
new/opentelemetry-api-0.6b0/src/opentelemetry_api.egg-info/PKG-INFO
--- old/opentelemetry-api-0.5b0/src/opentelemetry_api.egg-info/PKG-INFO 
2020-03-17 00:13:34.000000000 +0100
+++ new/opentelemetry-api-0.6b0/src/opentelemetry_api.egg-info/PKG-INFO 
2020-03-31 07:23:45.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: opentelemetry-api
-Version: 0.5b0
+Version: 0.6b0
 Summary: OpenTelemetry Python API
 Home-page: 
https://github.com/open-telemetry/opentelemetry-python/tree/master/opentelemetry-api
 Author: OpenTelemetry Authors
@@ -27,7 +27,7 @@
         * `OpenTelemetry Project <https://opentelemetry.io/>`_
         
 Platform: UNKNOWN
-Classifier: Development Status :: 3 - Alpha
+Classifier: Development Status :: 4 - Beta
 Classifier: Intended Audience :: Developers
 Classifier: License :: OSI Approved :: Apache Software License
 Classifier: Programming Language :: Python
@@ -36,4 +36,5 @@
 Classifier: Programming Language :: Python :: 3.5
 Classifier: Programming Language :: Python :: 3.6
 Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
 Description-Content-Type: text/x-rst


Reply via email to