def create(self, uuid, collection, tags=None, annotations=None): """ Tells BTrDB to create a new stream with UUID `uuid` in `collection` with specified `tags` and `annotations`. Parameters ---------- uuid: UUID The uuid of the requested stream. Returns ------- Stream instance of Stream class """ if tags is None: tags = {} if annotations is None: annotations = {} self.ep.create(uuid, collection, tags, annotations) return Stream(self, uuid, known_to_exist=True, collection=collection, tags=tags.copy(), annotations=annotations.copy(), property_version=0)
def streams_in_collection(self, *collection, is_collection_prefix=True, tags=None, annotations=None): """ Search for streams matching given parameters This function allows for searching Parameters ---------- collection: str collections to use when searching for streams, case sensitive. is_collection_prefix: bool Whether the collection is a prefix. tags: Dict[str, str] The tags to identify the stream. annotations: Dict[str, str] The annotations to identify the stream. Returns ------ list A list of stream objects found with the provided search arguments. """ result = [] if tags is None: tags = {} if annotations is None: annotations = {} if not collection: collection = [None] for item in collection: streams = self.ep.lookupStreams(item, is_collection_prefix, tags, annotations) for desclist in streams: for desc in desclist: tagsanns = unpack_stream_descriptor(desc) result.append( Stream(self, uuidlib.UUID(bytes=desc.uuid), known_to_exist=True, collection=desc.collection, tags=tagsanns[0], annotations=tagsanns[1], property_version=desc.propertyVersion)) return result
def stream_from_uuid(self, uuid): """ Creates a stream handle to the BTrDB stream with the UUID `uuid`. This method does not check whether a stream with the specified UUID exists. It is always good form to check whether the stream existed using `stream.exists()`. Parameters ---------- uuid: UUID The uuid of the requested stream. Returns ------- Stream instance of Stream class or None """ return Stream(self, to_uuid(uuid))