Coverage for src/P4OO/_Base.py: 89%
28 statements
« prev ^ index » next coverage.py v7.4.1, created at 2024-09-07 17:17 +0000
« prev ^ index » next coverage.py v7.4.1, created at 2024-09-07 17:17 +0000
1######################################################################
2# Copyright (c)2011-2012,2024 David L. Armstrong.
3# Copyright (c)2012, Cisco Systems, Inc.
4#
5# P4OO._Base.py
6#
7######################################################################
9"""
10Perforce _Base Class
12 P4OO._Base provides consistent construction and attribute handling
13methods for all P4OO objects.
14"""
16from P4 import P4
17from dataclasses import dataclass, field
18import logging
21@dataclass(unsafe_hash=True)
22class _P4OOBase:
23# _p4Conn: P4 = field(default=None, compare=False, repr=False)
24# p4PythonObj: P4 = field(default=None, compare=False, repr=False)
25 _p4Conn: P4 = field(default=None, compare=False, repr=False)
26 p4PythonObj: P4 = field(default=None, compare=False, repr=False)
28 def _uniqueID(self):
29 return id(self)
31 def _initialize(self):
32 return 1
34 def _logError(self, *args):
35 logging.error(args)
37 def _logWarning(self, *args):
38 logging.warning(args)
40 def _logDebug(self, *args):
41 logging.debug(args)
43 def _runCommand(self, cmdName, **kwargs):
44 p4Conn = self._getP4Connection()
46 return p4Conn.runCommand(cmdName, **kwargs)
48 def _getP4Connection(self):
49 from P4OO._P4Python import _P4OOP4Python
51# print(self.p4PythonObj)
52 if self._p4Conn is None:
53# my $p4SQLDbh = $self->_getAttr( 'p4SQLDbh' );
55 if self.p4PythonObj is not None:
56 self._p4Conn = _P4OOP4Python(**{"p4PythonObj": self.p4PythonObj})
57# elsif( defined( $p4SQLDbh ) )
58# {
59# require P4::OO::_Connection::P4toDB;
60# $p4Conn = P4::OO::_Connection::P4toDB->new('p4SQLDbh' => $self->_getAttr('p4SQLDbh'));
61# }
62 else:
63 self._p4Conn = _P4OOP4Python()
65 return self._p4Conn