Best Python code snippet using autotest_python
collision.py
Source:collision.py
...273 for contact in cdata.result.contacts:274 cg = contact.o1275 if cg == geom:276 cg = contact.o2277 name = self._extract_name(cg)278 names = (name, '__external')279 if cg == contact.o2:280 names = tuple(reversed(names))281 if return_names:282 objs_in_collision.add(name)283 if return_data:284 contact_data.append(ContactData(names, contact))285 if return_names and return_data:286 return result, objs_in_collision, contact_data287 elif return_names:288 return result, objs_in_collision289 elif return_data:290 return result, contact_data291 else:292 return result293 def in_collision_internal(self, return_names=False, return_data=False):294 """295 Check if any pair of objects in the manager collide with one another.296 Parameters297 ----------298 return_names : bool299 If true, a set is returned containing the names300 of all pairs of objects in collision.301 return_data : bool302 If true, a list of ContactData is returned as well303 Returns304 -------305 is_collision : bool306 True if a collision occurred between any pair of objects307 and False otherwise308 names : set of 2-tup309 The set of pairwise collisions. Each tuple310 contains two names in alphabetical order indicating311 that the two corresponding objects are in collision.312 contacts : list of ContactData313 All contacts detected314 """315 cdata = fcl.CollisionData()316 if return_names or return_data:317 cdata = fcl.CollisionData(request=fcl.CollisionRequest(318 num_max_contacts=100000, enable_contact=True))319 self._manager.collide(cdata, fcl.defaultCollisionCallback)320 result = cdata.result.is_collision321 objs_in_collision = set()322 contact_data = []323 if return_names or return_data:324 for contact in cdata.result.contacts:325 names = (self._extract_name(contact.o1),326 self._extract_name(contact.o2))327 if return_names:328 objs_in_collision.add(tuple(sorted(names)))329 if return_data:330 contact_data.append(ContactData(names, contact))331 if return_names and return_data:332 return result, objs_in_collision, contact_data333 elif return_names:334 return result, objs_in_collision335 elif return_data:336 return result, contact_data337 else:338 return result339 def in_collision_other(self, other_manager,340 return_names=False, return_data=False):341 """342 Check if any object from this manager collides with any object343 from another manager.344 Parameters345 -------------------346 other_manager : CollisionManager347 Another collision manager object348 return_names : bool349 If true, a set is returned containing the names350 of all pairs of objects in collision.351 return_data : bool352 If true, a list of ContactData is returned as well353 Returns354 -------------355 is_collision : bool356 True if a collision occurred between any pair of objects357 and False otherwise358 names : set of 2-tup359 The set of pairwise collisions. Each tuple360 contains two names (first from this manager,361 second from the other_manager) indicating362 that the two corresponding objects are in collision.363 contacts : list of ContactData364 All contacts detected365 """366 cdata = fcl.CollisionData()367 if return_names or return_data:368 cdata = fcl.CollisionData(369 request=fcl.CollisionRequest(370 num_max_contacts=100000,371 enable_contact=True))372 self._manager.collide(other_manager._manager,373 cdata,374 fcl.defaultCollisionCallback)375 result = cdata.result.is_collision376 objs_in_collision = set()377 contact_data = []378 if return_names or return_data:379 for contact in cdata.result.contacts:380 reverse = False381 names = (self._extract_name(contact.o1),382 other_manager._extract_name(contact.o2))383 if names[0] is None:384 names = (self._extract_name(contact.o2),385 other_manager._extract_name(contact.o1))386 reverse = True387 if return_names:388 objs_in_collision.add(names)389 if return_data:390 if reverse:391 names = tuple(reversed(names))392 contact_data.append(ContactData(names, contact))393 if return_names and return_data:394 return result, objs_in_collision, contact_data395 elif return_names:396 return result, objs_in_collision397 elif return_data:398 return result, contact_data399 else:400 return result401 def min_distance_single(self,402 mesh,403 transform=None,404 return_name=False,405 return_data=False):406 """407 Get the minimum distance between a single object and any408 object in the manager.409 Parameters410 ---------------411 mesh : Trimesh object412 The geometry of the collision object413 transform : (4,4) float414 Homogeneous transform matrix for the object415 return_names : bool416 If true, return name of the closest object417 return_data : bool418 If true, a DistanceData object is returned as well419 Returns420 -------------421 distance : float422 Min distance between mesh and any object in the manager423 name : str424 The name of the object in the manager that was closest425 data : DistanceData426 Extra data about the distance query427 """428 if transform is None:429 transform = np.eye(4)430 # create BVH/Convex431 geom = self._get_fcl_obj(mesh)432 # create the FCL transform from (4,4) matrix433 t = fcl.Transform(transform[:3, :3], transform[:3, 3])434 o = fcl.CollisionObject(geom, t)435 # Collide with manager's objects436 ddata = fcl.DistanceData(fcl.DistanceRequest(enable_signed_distance=True))437 if return_data:438 ddata = fcl.DistanceData(439 fcl.DistanceRequest(440 enable_nearest_points=True,441 enable_signed_distance=True442 ),443 fcl.DistanceResult()444 )445 self._manager.distance(o, ddata, fcl.defaultDistanceCallback)446 distance = ddata.result.min_distance447 # If we want to return the objects that were collision, collect them.448 name, data = None, None449 if return_name or return_data:450 cg = ddata.result.o1451 if cg == geom:452 cg = ddata.result.o2453 name = self._extract_name(cg)454 names = (name, '__external')455 if cg == ddata.result.o2:456 names = tuple(reversed(names))457 data = DistanceData(names, ddata.result)458 if return_name and return_data:459 return distance, name, data460 elif return_name:461 return distance, name462 elif return_data:463 return distance, data464 else:465 return distance466 def min_distance_internal(self, return_names=False, return_data=False):467 """468 Get the minimum distance between any pair of objects in the manager.469 Parameters470 -------------471 return_names : bool472 If true, a 2-tuple is returned containing the names473 of the closest objects.474 return_data : bool475 If true, a DistanceData object is returned as well476 Returns477 -----------478 distance : float479 Min distance between any two managed objects480 names : (2,) str481 The names of the closest objects482 data : DistanceData483 Extra data about the distance query484 """485 ddata = fcl.DistanceData(fcl.DistanceRequest(enable_signed_distance=True))486 if return_data:487 ddata = fcl.DistanceData(488 fcl.DistanceRequest(489 enable_nearest_points=True,490 enable_signed_distance=True,491 ),492 fcl.DistanceResult()493 )494 self._manager.distance(ddata, fcl.defaultDistanceCallback)495 distance = ddata.result.min_distance496 names, data = None, None497 if return_names or return_data:498 names = (self._extract_name(ddata.result.o1),499 self._extract_name(ddata.result.o2))500 data = DistanceData(names, ddata.result)501 names = tuple(sorted(names))502 if return_names and return_data:503 return distance, names, data504 elif return_names:505 return distance, names506 elif return_data:507 return distance, data508 else:509 return distance510 def min_distance_other(self, other_manager,511 return_names=False, return_data=False):512 """513 Get the minimum distance between any pair of objects,514 one in each manager.515 Parameters516 ----------517 other_manager : CollisionManager518 Another collision manager object519 return_names : bool520 If true, a 2-tuple is returned containing521 the names of the closest objects.522 return_data : bool523 If true, a DistanceData object is returned as well524 Returns525 -----------526 distance : float527 The min distance between a pair of objects,528 one from each manager.529 names : 2-tup of str530 A 2-tuple containing two names (first from this manager,531 second from the other_manager) indicating532 the two closest objects.533 data : DistanceData534 Extra data about the distance query535 """536 ddata = fcl.DistanceData(fcl.DistanceRequest(enable_signed_distance=True))537 if return_data:538 ddata = fcl.DistanceData(539 fcl.DistanceRequest(540 enable_nearest_points=True,541 enable_signed_distance=True,542 ),543 fcl.DistanceResult()544 )545 self._manager.distance(other_manager._manager,546 ddata,547 fcl.defaultDistanceCallback)548 distance = ddata.result.min_distance549 names, data = None, None550 if return_names or return_data:551 reverse = False552 names = (self._extract_name(ddata.result.o1),553 other_manager._extract_name(ddata.result.o2))554 if names[0] is None:555 reverse = True556 names = (self._extract_name(ddata.result.o2),557 other_manager._extract_name(ddata.result.o1))558 dnames = tuple(names)559 if reverse:560 dnames = tuple(reversed(dnames))561 data = DistanceData(dnames, ddata.result)562 if return_names and return_data:563 return distance, names, data564 elif return_names:565 return distance, names566 elif return_data:567 return distance, data568 else:569 return distance570 def _get_fcl_obj(self, mesh):571 """572 Get a BVH or Convex for a mesh.573 Parameters574 -------------575 mesh : Trimesh576 Mesh to create BVH/Convex for577 Returns578 --------------579 obj : fcl.BVHModel or fcl.Convex580 BVH/Convex object of source mesh581 """582 if mesh.is_convex:583 obj = mesh_to_convex(mesh)584 else:585 obj = mesh_to_BVH(mesh)586 return obj587 def _extract_name(self, geom):588 """589 Retrieve the name of an object from the manager by its590 CollisionObject, or return None if not found.591 Parameters592 -----------593 geom : CollisionObject or BVHModel594 Input model595 Returns596 ------------597 names : hashable598 Name of input geometry599 """600 return self._names[id(geom)]601def mesh_to_BVH(mesh):...
utils.py
Source:utils.py
...4import typing5logger = logging.getLogger(__name__)6PathLike = typing.Union[str, pathlib.Path]7class DefaultSpringCloudConfigParser:8 def _extract_name(self, name: str) -> str:9 basename = os.path.basename(name)10 return os.path.splitext(basename)[0]11 def __call__(self, raw_data: dict, *args, **kwargs) -> dict:12 expected = raw_data['name']13 for source in raw_data['propertySources']:14 if source['name'].endswith('application.yaml'):15 config = source['source']16 break17 else:18 logger.warning('No application.yaml found in response; using empty config as base')19 config = {}20 names = []21 for source in raw_data['propertySources']:22 if source['name'].endswith('application.yaml'):23 continue24 else:25 name = self._extract_name(source['name'])26 names.append(name)27 config.update(source['source'])28 if expected not in names:29 raise ValueError("expected config with name '{}' was not found in response".format(expected))...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!