0
Files
src/tools/json_schema_compiler/schema_util.py
Avi Drissman dfd8808526 Update copyright headers in testing/, tools/
The methodology used to generate this CL is documented in
https://crbug.com/1098010#c95.

No-Try: true
No-Presubmit: true
Bug: 1098010
Change-Id: I3a8a7b150e7bd64690534727150646081df50439
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3900697
Reviewed-by: Mark Mentovai <mark@chromium.org>
Auto-Submit: Avi Drissman <avi@chromium.org>
Owners-Override: Avi Drissman <avi@chromium.org>
Commit-Queue: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1047644}
2022-09-15 20:11:09 +00:00

40 lines
1.1 KiB
Python

# Copyright 2012 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Utilies for the processing of schema python structures.
"""
def CapitalizeFirstLetter(value):
return value[0].capitalize() + value[1:]
def GetNamespace(ref):
return SplitNamespace(ref)[0]
def StripNamespace(ref):
return SplitNamespace(ref)[1]
def SplitNamespace(ref):
"""Returns (namespace, entity) from |ref|, e.g. app.window.AppWindow ->
(app.window, AppWindow). If |ref| isn't qualified then returns (None, ref).
"""
if '.' in ref:
return tuple(ref.rsplit('.', 1))
return (None, ref)
def JsFunctionNameToClassName(namespace_name, function_name):
"""Transform a fully qualified function name like foo.bar.baz into FooBarBaz
Also strips any leading 'Experimental' prefix."""
parts = []
full_name = namespace_name + "." + function_name
for part in full_name.split("."):
parts.append(CapitalizeFirstLetter(part))
if parts[0] == "Experimental":
del parts[0]
class_name = "".join(parts)
return class_name